2017-03-03 162 views
0

假設有兩個列表:如何將列表的每個元素結合到另一個列表中?

['a', 'b', 'c'], ['d', 'e', 'f'] 

我想要的是:

'ad','ae','af','bd','be','bf','cd','ce','cf' 

我怎樣才能得到這個沒有遞歸或列表理解?我的意思是隻使用循環,使用Python?

+2

請給我們一些代碼嗎? –

+0

你不應該施加像「不理解」或「沒有遞歸」的限制。你甚至在看到它們之前,人爲地限制你的可能答案的範圍,其中一些答案可能是正確答案。 – skrrgwasme

+0

因爲我知道如何處理列表推導,我只想要一些有關循環的高級思想! –

回答

2

在迭代第一個數組中的元素時,應該迭代第二個數組中的所有元素,並將組合結果推送到新列表中。

first_list = ['a', 'b', 'c'] 
second_list = ['d', 'e', 'f'] 
combined_list = [] 
for i in first_list: 
    for j in second_list: 
     combined_list.append(i + j) 
print(combined_list) 
+0

謝謝!但如果不僅有兩個列表,如何在短時間內使用循環結合列表 –

3

itertools模塊實現了很多圈狀的東西:

combined = [] 

for pair in itertools.product(['a', 'b', 'c'], ['d', 'e', 'f']): 
    combined.append(''.join(pair)) 
1

這一概念被稱爲笛卡爾積和STDLIB itertools.product將建立一個適合你 - 唯一的問題是它會給你像元組('a', 'd')而不是字符串,但你可以通過它們加入你想要的結果:

from itertools import product 
print(*map(''.join, product (['a','b,'c'],['d','e','f'])) 
相關問題