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

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

從字典和列表中刪除重復(fù)元素并對(duì)元素進(jìn)行排序

從字典和列表中刪除重復(fù)元素并對(duì)元素進(jìn)行排序

明月笑刀無情 2021-11-02 16:54:05
我想刪除并訂購(gòu)我的元素列表['elt9', 'elt19', 'elt1', 'elt2', 'elt3','elt9','elt2']并得到['elt1', 'elt2', 'elt3', 'elt9', 'elt19']這是我所有的代碼:import itertools as itimport refrom collections import OrderedDictfrom itertools import chainL1 = ['elt1', 'elt2', 'elt3', 'elt4', 'elt5', 'elt6', 'elt9']L2 = [['elt1','elt11'],['elt2','elt12'],['elt3','elt13'], ['elt4','elt14']]def generate_combinations(L):        L_com = []    for r in range(1, len(L)+1):        L_com += list(it.combinations(L, r))               all_combination= []    for i in L_com:        for j in L2:            all_combination.append(j+list(i))    l = sorted(set(all_combination), key = lambda x : int(re.findall(r'\d+', x)[0]))    with open('combinations.txt', 'w') as file_handler:         for item in l:             file_handler.write("{}\n".format(item))if __name__ == "__main__":    generate_combinations(L1)我有這個(gè)錯(cuò)誤:TypeError                                 Traceback (most recent call last)<ipython-input-49-e0b599cc4158> in <module>()      1 if __name__ == "__main__":----> 2     generate_combinations(L1)<ipython-input-45-81ef5db3553e> in  generate_combinations(L1)     21      22     #sorted(set(all_combination), key=lambda x: int(x[3:]))---> 23     l = sorted(set(all_combination), key = lambda x : int(re.findall(r'\d+', x)[0]))     24      25     with open('combinations.txt', 'w') as file_handler:TypeError: unhashable type: 'list'
查看完整描述

3 回答

?
aluckdog

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

使用set有sorted:


l = ['elt9', 'elt19', 'elt1', 'elt2', 'elt3','elt9','elt2']

sorted(set(l), key=lambda x: int(x[3:]))


['elt1', 'elt2', 'elt3', 'elt9', 'elt19']


查看完整回答
反對(duì) 回復(fù) 2021-11-02
?
慕蓋茨4494581

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

你可以試試這個(gè):


import re

l= ['elt9', 'elt19', 'elt1', 'elt2', 'elt3','elt9','elt2']

l = sorted(set(l), key = lambda x : int(re.findall(r'\d+', x)[0]))

l

['elt1', 'elt2', 'elt3', 'elt9', 'elt19']

這也適用于任何數(shù)字(3、4 位數(shù)字等),而不僅僅是 2。但需要注意的是,它應(yīng)該只有一個(gè)數(shù)字才能工作。re.findall 查找提供給它的所有模式并返回滿足該模式的列表。模式\d+代表一個(gè)或多個(gè)整數(shù)。


查看完整回答
反對(duì) 回復(fù) 2021-11-02
?
冉冉說

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

在變量all_combination 中有二維列表/數(shù)組 ([['elt1', 'elt11', 'elt1'], ['elt2', 'elt12', 'elt1'], ['elt3', 'elt13', 'elt1'], ['elt4', 'elt14', 'elt1'], ['elt1', 'elt11', 'elt2'], ...) 并且你正在嘗試這樣做:


l = sorted(set( all_combination ), key = lambda x : int(re.findall(r'\d+', x)[0]))


該部分代碼適用于您在帖子中提到的列表類型:


L1 = ['elt9', 'elt19', 'elt1', 'elt2', 'elt3','elt9','elt2']

l = sorted(set(L1), key = lambda x : int(re.findall(r'\d+', x)[0]))

print (l)

結(jié)果:['elt1'、'elt2'、'elt3'、'elt9'、'elt19']


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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