[英]Python automatically extract list index in and append data
我不知道如何描述问题。 举个例子:
a=[[1,2],[3,4],[5,6]]
b=[['a','b'],['c','c']]
x=[a,b]
现在,我想将x
元素的元素附加到之前的元素(在这种情况下, b
元素在每个a元素上),我可以使用
t=[]
for i in a:
for j in b:
t.append(i+j)
然后我想要的结果变成了:
t
[[1, 2, 'a', 'b'],
[1, 2, 'c', 'c'],
[3, 4, 'a', 'b'],
[3, 4, 'c', 'c'],
[5, 6, 'a', 'b'],
[5, 6, 'c', 'c']]
在这种情况下,我知道x中有a
和b
,因此可以附加它们。 但是,如果我不知道x中有多少个项目,该如何追加元素?
像x=[a,b,c,d,e,...]
尝试过使用循环,但效果不好。 我在考虑combination
但不确定如何做到这一点。
生成成对产品,并分别使用itertools
的product
和chain
功能对其进行展平:
from itertools import chain, product
t = [list(chain.from_iterable(i)) for i in product(a, b)]
print(t)
[[1, 2, 'a', 'b'],
[1, 2, 'c', 'c'],
[3, 4, 'a', 'b'],
[3, 4, 'c', 'c'],
[5, 6, 'a', 'b'],
[5, 6, 'c', 'c']]
该解决方案将推广到任意数量的列表:
x = [a, b, c, ...]
t = [list(chain.from_iterable(i)) for i in product(*x)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.