为了账号安全,请及时绑定邮箱和手机立即绑定

如何搜索包含字符串的 arry,并创建一个只有整数的新数组

如何搜索包含字符串的 arry,并创建一个只有整数的新数组

MMMHUHU 2021-12-17 15:32:47
如果我有一个只包含字符串的数组,但其中一些是数字,我将如何搜索数组,确定哪些字符串实际上是数字,并将这些数字添加到新数组中?数组的一个例子如下: [ "Chris" , "90" , "Dave" , "76" ]我已经尝试使用 for 循环在每个索引上连续使用 isdigit() ,如果该项目为真,则将该项目添加到新数组中。scores = []    for i in range(len(name_and_score_split)):        if name_and_score_split[i].isdigit() == True:            scores.append(name_and_score_split[i])当上面的代码运行时,它告诉我列表数据类型没有“isdigit”功能编辑:我发现我的问题是列表实际上是一个列表列表。
查看完整描述

3 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

使用列表理解并利用 Python 的 for-each 属性for而不是迭代索引:


lst = ["Chris" , "90" , "Dave" , "76"]


scores = [x for x in lst if x.isdigit()]

# ['90', '76']

或者,filter您的清单:


scores = list(filter(lambda x: x.isdigit(), lst))


查看完整回答
反对 回复 2021-12-17
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

如果你想要 int 列表:


s = ["Chris", "90", "Dave", "76"]

e = [int(i) for i in s if i.isdigit()]

print(e)

# OUTPUT: [90, 76]


查看完整回答
反对 回复 2021-12-17
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

假设您正在尝试什么,如果对于整数,您可以执行以下操作:


//两者的和不断变化float的int。


def is_number(s):

    try:

        int(s)

        return True

    except ValueError:

        return False

然后你可以做


[x for x in name_and_score_split if is_number(x)]


查看完整回答
反对 回复 2021-12-17
  • 3 回答
  • 0 关注
  • 173 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号