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

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

查找每個單獨列表元素的所有組合

查找每個單獨列表元素的所有組合

慕妹3146593 2022-01-05 11:08:11
鑒于以下列表myList = ['A' , 'B' , 'C, D' , 'E, F, G', 'H' , 'I']我如何為列表中超過 2 個字符的每個元素獲取所有可能的組合。如果有意義的話,我也不想將所有元素組合在一起。使用上述列表的示例輸出如下所示:myList = ['A' , 'B' , 'C, D' , 'E, F' , 'E, G' , 'F, G' , 'H' , 'I']注意:我只關心找到每個具有兩個以上字符的元素的組合。我曾嘗試使用 itertools 幾次,但似乎想找到列表中所有元素的所有可能組合,而不是單個部分的組合。for L in range(0, len(myList)+1):    for subset in itertools.combinations(myList, L):        print(subset)
查看完整描述

2 回答

?
眼眸繁星

TA貢獻1873條經(jīng)驗 獲得超9個贊

僅對拆分后具有 2 個以上字母的元素使用itertools 組合。


import itertools

myList = ['A' , 'B' , 'C, D' , 'E, F, G', 'H' , 'I']


result = []


for item in myList:

    item_split = item.split(',') #split each item on , separator

    if len(item_split) <= 2:

        result.append(item)

    else: #more than 2 items after splitting. use combinations

        result.extend(",".join(pair) for pair in itertools.combinations(item_split, 2))


print(result)

#Output:

['A', 'B', 'C, D', 'E, F', 'E, G', ' F, G', 'H', 'I']


查看完整回答
反對 回復 2022-01-05
?
森林海

TA貢獻2011條經(jīng)驗 獲得超2個贊

類似于Paritosh Singh 的回答,但有更多括號 :)


from operator import methodcaller

from itertools import chain, combinations


sep = ', '

splitter = methodcaller('split', sep)

def pairs(x):

    return combinations(x, 2 if len(x) > 1 else 1)

joiner = sep.join


result = list(map(joiner, 

                  chain.from_iterable(map(pairs, 

                                          map(splitter,

                                              my_list)))))

[題外話提醒]


...如果你使用Coconut,可以說讀起來會更好一些:


from itertools import chain, combinations



my_list = ['A' , 'B' , 'C, D' , 'E, F, G', 'H' , 'I']


my_result = (my_list

              |> split_each

              |> pairs

              |> chain.from_iterable

              |> join_each

              |> list

             )

    where:

        split_each = map$(.split(", "))

        pairs = map$((x) -> combinations(x, 2 if len(x) > 1 else 1))

        join_each = map$(", ".join)


查看完整回答
反對 回復 2022-01-05
  • 2 回答
  • 0 關注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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