基于元素名称在python中对长列表的元素进行分组

我有一个像下面这样的长列表,我分别根据 (element[0], element[3], element[2]) 对它们进行了排序。对于元素,我的意思是下划线之间的数字。


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',

...]

现在,我想根据 element[3] 拆分列表。我想要的结果是:


[['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'],

...]

我有这段代码将每个名字打印为一个列表。我不知道如何在这段代码中按 element3 分组:


for imagename in list3:

    element3 = imagename.split("_")[3]

    for j,m in groupby(list3):

        print(list(m))


哔哔one
浏览 191回答 2
2回答

哈士奇WWW

您可以像这样使用itertools.groupby:from itertools import groupbylist3 = ['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']]上面的列表推导等价于以下for循环:result = []for _, group in groupby(list3, key=lambda x: x.split('_')[3]):    result.append(list(group))

动漫人物

试试这个(不导入任何东西):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])只需将一个列表附加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', ...]]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python