3 回答

TA貢獻(xiàn)1866條經(jīng)驗 獲得超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
將字符串元素轉(zhuǎn)換為列表對象itertools.chain
整理清單。

TA貢獻(xiàn)1803條經(jīng)驗 獲得超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貢獻(xiàn)1853條經(jīng)驗 獲得超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)
添加回答
舉報