如果我有一个只包含字符串的数组,但其中一些是数字,我将如何搜索数组,确定哪些字符串实际上是数字,并将这些数字添加到新数组中?数组的一个例子如下: [ "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))

哈士奇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]

小怪兽爱吃肉
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)]
添加回答
举报
0/150
提交
取消