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

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

基于元素名稱在python中對(duì)長列表的元素進(jìn)行分組

基于元素名稱在python中對(duì)長列表的元素進(jìn)行分組

嗶嗶one 2021-10-10 16:05:36
我有一個(gè)像下面這樣的長列表,我分別根據(jù) (element[0], element[3], element[2]) 對(duì)它們進(jìn)行了排序。對(duì)于元素,我的意思是下劃線之間的數(shù)字。list3=['20180406_145813_4_1.jpg', '20180406_145813_5_1.jpg', '20180406_145813_6_1.jpg', '20180406_175827_10_12.jpg', '20180406_175827_11_12.jpg', '20180409_190651_7_2.jpg', '20180409_190651_8_2.jpg',...]現(xiàn)在,我想根據(jù) element[3] 拆分列表。我想要的結(jié)果是:[['20180406_145813_4_1.jpg', '20180406_145813_5_1.jpg', '20180406_145813_6_1.jpg'], ['20180406_175827_10_12.jpg', '20180406_175827_11_12.jpg'], ['20180409_190651_7_2.jpg', '20180409_190651_8_2.jpg'],...]我有這段代碼將每個(gè)名字打印為一個(gè)列表。我不知道如何在這段代碼中按 element3 分組:for imagename in list3:    element3 = imagename.split("_")[3]    for j,m in groupby(list3):        print(list(m))
查看完整描述

2 回答

?
哈士奇WWW

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

您可以像這樣使用itertools.groupby:


from itertools import groupby


list3 = ['20180406_145813_4_1.jpg',

         '20180406_145813_5_1.jpg',

         '20180406_145813_6_1.jpg',

         '20180406_175827_10_12.jpg',

         '20180406_175827_11_12.jpg',

         '20180409_190651_7_2.jpg',

         '20180409_190651_8_2.jpg']


result = [list(group) for _, group in groupby(list3, key=lambda x: x.split('_')[3])]

print(result)

輸出


[['20180406_145813_4_1.jpg', '20180406_145813_5_1.jpg', '20180406_145813_6_1.jpg'], ['20180406_175827_10_12.jpg', '20180406_175827_11_12.jpg'], ['20180409_190651_7_2.jpg', '20180409_190651_8_2.jpg']]

上面的列表推導(dǎo)等價(jià)于以下for循環(huán):


result = []

for _, group in groupby(list3, key=lambda x: x.split('_')[3]):

    result.append(list(group))


查看完整回答
反對(duì) 回復(fù) 2021-10-10
?
動(dòng)漫人物

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

試試這個(gè)(不導(dǎo)入任何東西):


list3=['20180406_145813_4_1.jpg',

       '20180406_145813_5_1.jpg',

       '20180406_145813_6_1.jpg',

       '20180406_175827_10_12.jpg',

       '20180406_175827_11_12.jpg',

       '20180409_190651_7_2.jpg',

       '20180409_190651_8_2.jpg',

       ...]


res = []

for first, second, third in zip(*[iter(list3)]*3):

    res.append([first, second, third])

只需將一個(gè)列表附加first, seconds, third到res列表中


print(res)


[['20180406_145813_4_1.jpg', '20180406_145813_5_1.jpg', '20180406_145813_6_1.jpg'], 

 ['20180406_175827_10_12.jpg', ...]]


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

添加回答

舉報(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)