簡體   English   中英

Python自動提取列表索引並追加數據

[英]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中有ab ,因此可以附加它們。 但是,如果我不知道x中有多少個項目,該如何追加元素?

x=[a,b,c,d,e,...]

嘗試過使用循環,但效果不好。 我在考慮combination但不確定如何做到這一點。

生成成對產品,並分別使用itertoolsproductchain功能對其進行展平:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM