動(dòng)漫人物
2021-09-28 13:29:35
我無法為我遇到的這個(gè)非常具體的問題找到解決方案。本質(zhì)上,我有兩個(gè)列表,每個(gè)列表有兩個(gè)元素:[A, B] 和 [1,2]。我想創(chuàng)建一個(gè)嵌套循環(huán),在第二個(gè)列表上迭代和擴(kuò)展,并在每次迭代后添加第一個(gè)列表的每個(gè)元素。最后我想看到的是:A B 1 A1 B2 A2 B1 1 A1 2 A2 1 A2 2 A1 1 B1 2 B2 1 B2 2 B1 1 1 A1 1 2 A...我的問題是,我嘗試這樣做遞歸地將 A 和 B 分開,以便出現(xiàn)這種模式(也請(qǐng)注意不同的第一行):A1 A2 A1 1 A1 2 A2 1 A2 2 A1 1 1 A1 1 2 A...B1 B2 B1 1 B1 2 B2 1 B2 2 B1 1 1 B1 1 2 B...我如何將 A 和 B 放在一起?這是代碼:def second_list(depth): if depth < 1: yield '' else: for elements in [' 1 ', ' 2 ']: for other_elements in list (second_list(depth-1)): yield elements + other_elementsfor first_list in [' A ', ' B ']: for i in range(0,4): temp=second_list(i) for temp_list in list(temp): print temp_list + first_list
1 回答

慕田峪7331174
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊
我會(huì)嘗試以下風(fēng)格的東西:
l1 = ['A', 'B']
l2 = ['1', '2']
def expand(l1, l2):
nl1 = []
for e in l1:
for f in l2:
nl1.append(f+e)
yield nl1[-1]
yield from expand(nl1,l2)
for x in expand(l1, l2):
print (x)
if len(x) > 5:
break
注意:輸出的第一行似乎不是同一規(guī)則的產(chǎn)物,所以這里沒有生成,如果需要,可以手動(dòng)添加。
注意2:不構(gòu)建新生成元素的列表會(huì)更優(yōu)雅,但是你必須計(jì)算它們兩次。
添加回答
舉報(bào)
0/150
提交
取消