簡體   English   中英

如何組合兩個列表以獲得以下包含元組的所需結果?

[英]How to combine two lists to get the following desired result containing tuples?

我有兩個列表:

a = ['apple', 'mango', 'pear']

b = ['ripe','raw','rotten']

如何獲得以下元組結果列表:

[(('apple', 'mango', 'pear'), 'ripe'), (('apple', 'mango', 'pear'), 'raw'), (('apple', 'mango', 'pear'), 'rotten')]

list(itertools.product(a,b))將使用A的元素。要將完整列表作為元素,您可以使用嵌套列表,例如:

list(itertools.product([tuple(a)], b)

結果:

[(('apple', 'mango', 'pear'), 'ripe'), (('apple', 'mango', 'pear'), 'raw'), (('apple', 'mango', 'pear'), 'rotten')]

你有沒有嘗試過自己解決?

嘗試這個 :-

c = []
for i in b:
    c.append((tuple(a), i)) 
print (c) 

通常的方法是使用列表推導式:

>>> [(tuple(a), x) for x in b]
[(('apple', 'mango', 'pear'), 'ripe'), (('apple', 'mango', 'pear'), 'raw'), (('apple', 'mango', 'pear'), 'rotten')]

如果它們不必是元組,您還可以使用zip

>>> list(zip([a]*len(b), b))
[(['apple', 'mango', 'pear'], 'ripe'), (['apple', 'mango', 'pear'], 'raw'), (['apple', 'mango', 'pear'], 'rotten')]

僅在一行中嘗試此操作:

[(tuple(a), i) for i in b]

輸出將是:

[(('apple', 'mango', 'pear'), 'ripe'),
 (('apple', 'mango', 'pear'), 'raw'),
 (('apple', 'mango', 'pear'), 'rotten')]

你可以試試這個:

a = ['apple', 'mango', 'pear']

b = ['ripe','raw','rotten']

list=[ ]
for i in b:
    k=((tuple((tuple(a),i))))
    list.append(k)

print(list)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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