例如,我将如何最佳地合并:
res_str = ['[1,2,3]','[4,5,6]','[7,8,9]','[10,11,12]']
for example: ['[{'a': u'中国', 'b': u'美国', 'c': u'日本', 'd': u'德国', 'e': u'法国'},]','[{'a': u'中国', 'b': u'美国', 'c': u'日本', 'd': u'德国', 'e': u'法国'},]',]
进入:
[1,2,3,4,5,6,7,8,9,10,11,12]
我使用了以下代码,但是速度不够快:
[x for j in res_str for x in eval(j)] spend time 0.65s
list(itertools.chain.from_iterable([eval(i) for i in res_str])) spend time 0.57s
有没有更好的方法来编写此代码?
除了发电机
(x for j in res_str for x in eval(j))
另一种方式
sum([eval(i) for i in res_str],[]) spend time 3.87s
这边走:
import ast
import itertools
l = ['[1,2,3]','[4,5,6]','[7,8,9]','[10,11,12]']
l = list(itertools.chain(*map(ast.literal_eval, l)))
spend time 0.95s
如果使用eval
list(itertools.chain(*map(eval, res_str)))
spend time 0.58s
这边走:
eval('+'.join('+'.join(arr))) spend time 3.5s
这边走:
import ast
import numpy as np
res_str = ['[1,2,3]','[4,5,6]','[7,8,9]','[10,11,12]']
print(list(np.array([ast.literal_eval(i) for i in res_str]).flatten()))
spend time 1s
如果使用eval list(np.array([res_str中i的eval(i)))。flatten())花费时间0.58s
心有法竹
繁星点点滴滴
暮色呼如
相关分类