有没有办法只输出python列表中的数字?

19 投票
10 回答
51405 浏览
提问于 2025-04-15 13:36

简单的问题:

list_1 = [ 'asdada', 1, 123131.131, 'blaa adaraerada', 0.000001, 34.12451235265, 'stackoverflow is awesome' ]

我想创建一个 list_2,这个列表里只包含数字:

list_2 = [ 1, 123131.131, 0.000001, 34.12451235265 ]

有没有简单的方法可以做到这一点?还是说我必须检查每个列表项的类型,只输出数字的部分?

10 个回答

3
list_2 = [i for i in list_1 if isinstance(i, (int, float))]

当然可以!请把你想要翻译的内容发给我,我会帮你把它变得简单易懂。

23

列表推导式。

list_2 = [num for num in list_1 if isinstance(num, (int,float))]
20

在Python 2中,这段代码应该是最有效率和最简短的:

import operator
filter(operator.isNumberType, list_1)

而在Python 3中,这段代码是这样的:

import numbers
[x for x in list_1 if isinstance(x, numbers.Number)]

撰写回答