查找字符串列表中的所有整数,并以列表的形式输出

时间:2018-01-20 06:24:27

标签: python python-3.x list

如何从列表中<查找提取整数(不使用 re模块) strong>字符串和整数

['My', '2', 'favorite', 'numbers', 'are', '42', 'and', '69']

如何以列表的形式提取所有整数(2,42,69)? 期望的输出:

[2, 42, 69]

2 个答案:

答案 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]