有没有办法只输出python列表中的数字?
简单的问题:
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)]