如何从列表中<查找和提取整数(不使用 re模块) strong>字符串和整数。
['My', '2', 'favorite', 'numbers', 'are', '42', 'and', '69']
如何以列表的形式提取所有整数(2,42,69)? 期望的输出:
[2, 42, 69]
答案 0 :(得分:1)
一个快速的解决方案是尝试将项目转换为int
并保留成功的项目。
result = []
for i in x:
try:
result.append(int(i))
except Exception:
pass
print(result)
>>[2, 42, 69]
如上所述Mateen Ulhaq
,如果您的输入始终为string
类型,则更适合使用:
[int(s) for s in my_list if s.isdigit()]
注意:如果您的字符串包含'-12'
答案 1 :(得分:0)
您可以通过迭代列表的每个元素并尝试将其转换为整数来完成此操作。如果转换成功,则将其附加到整数列表。
a = ['My', '2', 'favorite', 'numbers', 'are', '42', 'and', '69']
ints = []
for i in a:
try:
z = int(i)
ints.append(z)
except:
pass
或者你可以使用来自here的oneliner:
a = ['My', '2', 'favorite', 'numbers', 'are', '42', 'and', '69']
[int(s) for s in a if s.isdigit()]
#[2, 42, 69]