3 回答
TA贡献1866条经验 获得超5个赞
使用ast和itertools
前任:
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)))
print( l )
输出:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
ast.literal_eval
将字符串元素转换为列表对象itertools.chain
整理清单。
TA贡献1803条经验 获得超3个赞
您可以尝试以下简单方法。
>>> arr
['[1,2,3]', '[4,5,6]', '[7,8,9]', '[10,11,12]']
>>>
>>> '+'.join(arr)
'[1,2,3]+[4,5,6]+[7,8,9]+[10,11,12]'
>>>
>>> eval('+'.join(arr))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
>>>
另一种使用reduce()和lambda的方法。
>>> import json
>>>
>>> arr = ['[1,2,3]','[4,5,6]','[7,8,9]','[10,11,12]']
>>>
>>> arr2 = reduce(lambda list1, list2: list1 + '+' + list2, arr)
>>>
>>> arr2
'[1,2,3]+[4,5,6]+[7,8,9]+[10,11,12]'
>>>
>>> eval(arr2)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
TA贡献1853条经验 获得超9个赞
ast.literal_eval+ numpy.flatten:
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()))
和:
import ast
l = []
res_str = ['[1,2,3]','[4,5,6]','[7,8,9]','[10,11,12]']
for i in res_str:
l.extend(ast.literal_eval(i))
print(l)
添加回答
举报