从列表中提取整数
我有一个列表,比如 ['-1', '1,2,3', '2']
,我想从中提取出所有的整数。
我不知道列表中每个位置有多少个整数,也就是说,列表可能是 ['2,3,4','1,2,3','-1']
,但它永远不会是空字符串。
所以我希望得到的结果是 [2,3,4,1,2,3,-1]
。
请问有什么好的方法可以做到这一点,既要考虑复杂度,又要代码尽量少。
谢谢...
4 个回答
0
这两个东西不一样。测试可以给出真实的结果。
在这种情况下,使用map()比列表推导式要快。
from time import clock
from random import randint
li = [ ', '.join([str(randint(-30,30)) for i in xrange(randint(1,8))])
for j in xrange(1000) ]
A,B = [],[]
for fois in xrange(20):
te = clock()
res1 = map(int, ','.join(li).split(','))
A.append( clock()-te )
te = clock()
new_list = [ int(i) for i in ','.join(li).split(',') ]
B.append( clock()-te )
print '{:.1%}.'.format(min(B)/min(A))
结果是:115.1%。
虽然这个差距不大,但确实有区别。
0
这里有一个列表推导式:
new_list = [ int(i) for i in ','.join(old_list).split(',') ]
3
map(int, ','.join(l).split(','))
这里的 l
是你的列表。