第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何獲得 2 個(gè)列表的所有組合?

如何獲得 2 個(gè)列表的所有組合?

皈依舞 2023-03-01 15:41:37
我如何在 Python 中執(zhí)行此操作?輸入:num = [1, 2, 3]alpha = ['a', 'b', 'c']輸出:[1, a] [1, a, b] [1, a, b, c] [1, b, c] [1, c][1, 2, a] [1, 2, a, b] ... [1, 2, c]......[3, a] [3, a, b] ... [3, c]約束:The output expect all possible consecutive combinationse.g. ['a'] ['a','b'] are desired while ['a','c'] is not.我嘗試了 4 個(gè) for 循環(huán)/4 個(gè) while 循環(huán)的嵌套。使用這種深度的循環(huán)是否常見?
查看完整描述

3 回答

?
千萬里不及你

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個(gè)贊

以下僅使用兩個(gè)嵌套的 for 循環(huán)


from itertools import product as prod


def consecutive_combos(a):

    " Generates consecutive ombinations of items in list "

    return [a[i:j] for i in range(len(a)) for j in range(i+1, len(a)+1)]


num = [1, 2, 3]

alpha = ['a', 'b', 'c']


# Generates product of sequences

result = [x + y for x, y in prod(consecutive_combos(num), consecutive_combos(alpha))]


print(result)

輸出


[[1, 'a'], [1, 'a', 'b'], [1, 'a', 'b', 'c'], [1, 'b'], [1, 'b', 'c'], [1, 'c'], [1, 2, 'a'], [1, 2, 'a', 'b'], [1, 2, 'a', 'b', 'c'], [1, 2, 'b'], [1, 2, 'b', 'c'], [1, 2, 'c'], [1, 2, 3, 'a'], [1, 2, 3, 'a', 'b'], [1, 2, 3, 'a', 'b', 'c'], [1, 2, 3, 'b'], [1, 2, 3, 'b', 'c'], [1, 2, 3, 'c'], [2, 'a'], [2, 'a', 'b'], [2, 'a', 'b', 'c'], [2, 'b'], [2, 'b', 'c'], [2, 'c'], [2, 3, 'a'], [2, 3, 'a', 'b'], [2, 3, 'a', 'b', 'c'], [2, 3, 'b'], [2, 3, 'b', 'c'], [2, 3, 'c'], [3, 'a'], [3, 'a', 'b'], [3, 'a', 'b', 'c'], [3, 'b'], [3, 'b', 'c'], [3, 'c']]



查看完整回答
反對 回復(fù) 2023-03-01
?
翻閱古今

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊

您可以使用模塊itertoolsanscombinations


import itertools as it

l1 = []

# get all combinations of num

for i in range(1, len(num)+1):

    l1.extend([* it.combinations(num, i)])


# get all combinations of alpha

for j in range(1, len(alpha)+1):

    l2.extend([* it.combinations(alpha, j)])


# list comprehension to combine elements from the two lists

comb = [e1+e2 for e1 in l1 for e2 in l2]       

通過這樣做,您將獲得一個(gè)元組列表。


更新:

為了考慮約束:


輸出期望所有可能的連續(xù)組合


例如 [a] [a,b] 是需要的,而 [a,c] 不是。


num = [1, 2, 3]

alpha = ['a', 'b', 'c']

l1 = [num[i:j+1] for i in range(len(num)) for j in range(i, len(num))]

l2 = [alpha[i:j+1] for i in range(len(alpha)) for j in range(i, len(alpha))]


result = [e1+e2 for e1 in l1 for e2 in l2]

print(*result, sep="\n")

[1, 'a']

[1, 'a', 'b']

[1, 'a', 'b', 'c']

[1, 'b']

[1, 'b', 'c']

[1, 'c']

[1, 2, 'a']

[1, 2, 'a', 'b']

[1, 2, 'a', 'b', 'c']

[1, 2, 'b']

[1, 2, 'b', 'c']

[1, 2, 'c']

[1, 2, 3, 'a']

[1, 2, 3, 'a', 'b']

[1, 2, 3, 'a', 'b', 'c']

[1, 2, 3, 'b']

[1, 2, 3, 'b', 'c']

[1, 2, 3, 'c']

[2, 'a']

[2, 'a', 'b']

[2, 'a', 'b', 'c']

[2, 'b']

[2, 'b', 'c']

[2, 'c']

[2, 3, 'a']

[2, 3, 'a', 'b']

[2, 3, 'a', 'b', 'c']

[2, 3, 'b']

[2, 3, 'b', 'c']

[2, 3, 'c']

[3, 'a']

[3, 'a', 'b']

[3, 'a', 'b', 'c']

[3, 'b']

[3, 'b', 'c']

[3, 'c']


查看完整回答
反對 回復(fù) 2023-03-01
?
largeQ

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊

我希望它會(huì)有所幫助


from itertools import combinations 

num = [1, 2, 3]

alpha = ["a", "b", "c"]

big_list=num+alpha

comb += list(combinations(big_list,2) )

comb += list(combinations(big_list,3) )

for i in list(comb): 

   print (i)

輸出:


(1, 2) (1, 3) (1, 'a') (1, 'b') (1, 'c') (2, 3) (2, 'a') (2, 'b') (2, 'c') (3, 'a') (3, 'b') (3, 'c') ('a', 'b') ('a', 'c') ('b' , 'c') (1, 2, 3) (1, 2, 'a') (1, 2, 'b') (1, 2, 'c') (1, 3, 'a') (1 , 3, 'b') (1, 3, 'c') (1, 'a', 'b') (1, 'a', 'c') (1, 'b', 'c') ( 2, 3, 'a') (2, 3, 'b') (2, 3, 'c') (2, 'a', 'b') (2, 'a', 'c') (2 , 'b', 'c') (3, 'a', 'b') (3, 'a', 'c') (3, 'b', 'c') ('a', 'b' , 'c') [0.50秒內(nèi)完成]


查看完整回答
反對 回復(fù) 2023-03-01
  • 3 回答
  • 0 關(guān)注
  • 158 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)