我有多个维度列表输出,我想把它变成一个维度。
a = [1,0,3,0,5,0]
new_list = []
l = [2,4,6]
for i in a:
new_list.append(l)
print(new_list)
#[[2, 4, 6], [2, 4, 6], [2, 4, 6], [2, 4, 6], [2, 4, 6], [2, 4, 6]]发布于 2020-09-09 00:07:45
使用list-comprehension
s = [[2, 4, 6], [2, 4, 6], [2, 4, 6], [2, 4, 6], [2, 4, 6], [2, 4, 6]]
print([x for subl in s for x in subl])输出:
[2, 4, 6, 2, 4, 6, 2, 4, 6, 2, 4, 6, 2, 4, 6, 2, 4, 6]发布于 2020-09-08 23:29:14
如果你想要一个平面列表,你真的应该extend这个列表,而不是append。但是如果你已经有了它,最快最安全的方法就是使用itertools:
list(itertools.chain.from_iterable(your_list))发布于 2020-09-08 23:18:34
您可以递归地执行此操作:
def flatten(s):
if s == []:
return s
if isinstance(s[0], list):
return flatten(s[0]) + flatten(s[1:])
return s[:1] + flatten(s[1:])
l = [[2, 4, 6], [2, 4, 6], [2, 4, 6], [2, 4, 6], [2, 4, 6], [2, 4, 6]]
res = flatten(l)
print(res) # prints [2, 4, 6, 2, 4, 6, 2, 4, 6, 2, 4, 6, 2, 4, 6, 2, 4, 6]https://stackoverflow.com/questions/63796783
复制相似问题