如果我有一个仅包含字符串的数组,但其中一些是数字,我将如何搜索该数组,确定哪些字符串实际上是数字,然后将这些数字添加到新数组中?数组的示例如下:[“ 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”功能 编辑:我发现我的问题是列表实际上是列表列表。
答案 0 :(得分:2)
使用列表理解,还利用Python for
的for-each属性,而不是遍历索引:
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))
答案 1 :(得分:0)
假设您要尝试的是整数,则可以执行以下操作:
//拍摄from,然后将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)]
答案 2 :(得分:0)
如果要获取int列表:
clang-completer