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

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

如何將列表中的每個項目附加到 Python 列表中的列表?

如何將列表中的每個項目附加到 Python 列表中的列表?

慕無忌1623718 2021-09-02 20:03:27
對不起,標(biāo)題令人費解。例如,我有一個列表:[a, b, c, d]我想以這種格式生成具有不同組合的排名列表:[a][b][c][d][a, b][a, c][a, d][a, b, c][a, b, d][a, b, c, d]我在生成此列表時遇到問題。到目前為止,我首先做的是通過在每次迭代中添加一個元素來生成每個列表:[][a][a, b][a, b, c]然后我生成了排名列表的長度:[][][][][a][a][a][a, b][a, b][a, b, c]現(xiàn)在我被困在這里。Python 中是否有允許我執(zhí)行此操作的庫,或者您只能在代碼中手動執(zhí)行此操作?我要做的最后一件事是從我在頂部生成的原始列表中附加一個一對一的列表。這是我嘗試過的代碼,假設(shè)original_list是我在頂部制作的原始列表,并且new_list是我在此文本上方生成的列表:for x in range(0, len(original_list)):    new_list[x].append(original_list[x])這顯然不起作用,因為它將每個項目附加original_list到new_list.編輯:元素應(yīng)該按字母順序排列,只有最后一個元素具有不同的組合,沒有重復(fù)元素,因為我在一個包含 21 個項目的列表上嘗試這個。
查看完整描述

3 回答

?
哈士奇WWW

TA貢獻(xiàn)1799條經(jīng)驗 獲得超6個贊

通過將所需的列表追加到新列表中使用簡單迭代:


lst = ['a', 'b', 'c', 'd', 'e']


nlst = []

for i in range(len(lst)):

    for y in lst[i:]:

        nlst.append(lst[:i] + list(y))


for x in nlst:

    print(x)


# ['a']

# ['b']

# ['c']

# ['d']

# ['e']

# ['a', 'b']

# ['a', 'c']

# ['a', 'd']

# ['a', 'e']

# ['a', 'b', 'c']

# ['a', 'b', 'd']

# ['a', 'b', 'e']

# ['a', 'b', 'c', 'd']

# ['a', 'b', 'c', 'e']

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


查看完整回答
反對 回復(fù) 2021-09-02
?
呼啦一陣風(fēng)

TA貢獻(xiàn)1802條經(jīng)驗 獲得超6個贊

使用itertools recipes 中的 powerset recipe ,您可以執(zhí)行以下操作:


from itertools import chain, combinations



def powerset(iterable):

    s = list(iterable)

    it = chain.from_iterable(combinations(s, r) for r in range(len(s) + 1))

    return map(list, (e for e in it if e))



result = sorted(powerset(['a', 'b', 'c', 'd']), key=lambda x: (len(x), ''.join(x)))

for s in result:

    print(s)

輸出


['a']

['b']

['c']

['d']

['a', 'b']

['a', 'c']

['a', 'd']

['b', 'c']

['b', 'd']

['c', 'd']

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

['a', 'b', 'd']

['a', 'c', 'd']

['b', 'c', 'd']

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

更新


鑒于更新的要求,您可以執(zhí)行以下操作:


lst = ['a', 'b', 'c', 'd']

length = len(lst)



def patterns(l):

    for i in range(length):

        for c in l[i:]:

            yield l[:i] + [c]



for pattern in sorted(patterns(lst), key=lambda x: (len(x), ''.join(x))):

    print(pattern)

輸出


['a']

['b']

['c']

['d']

['a', 'b']

['a', 'c']

['a', 'd']

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

['a', 'b', 'd']

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


查看完整回答
反對 回復(fù) 2021-09-02
?
繁星點點滴滴

TA貢獻(xiàn)1803條經(jīng)驗 獲得超3個贊

嘗試這個:


from itertools import combinations


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

result = [list(combinations(a,i))for i in range(1,len(a)+1)]

并像這樣打?。?/p>


for i in result:

    print(*list(i), sep='\n')


查看完整回答
反對 回復(fù) 2021-09-02
  • 3 回答
  • 0 關(guān)注
  • 193 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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