2 回答

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))

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', ...]]
添加回答
舉報(bào)