python数组拆分_Python将数组拆分为多个数组

如果数据已经按文件名排序,则可以使用^{}:files = ['001_1.png', '001_2.png', '001_3.png', '002_1.png','002_2.png',

'003_1.png', '003_2.png', '003_3.png']

import itertools

keyfunc = lambda filename: filename[:3]

# this creates an iterator that yields `(group, filenames)` tuples,

# but `filenames` is another iterator

grouper = itertools.groupby(files, keyfunc)

# to get the result as a nested list, we iterate over the grouper to

# discard the groups and turn the `filenames` iterators into lists

result = [list(files) for _, files in grouper]

print(list(result))

# [['001_1.png', '001_2.png', '001_3.png'],

# ['002_1.png', '002_2.png'],

# ['003_1.png', '003_2.png', '003_3.png']]

否则,您可以将代码基于this recipe,这比排序列表然后使用groupby更有效。在输入:您的输入是一个平面列表,因此请使用常规的ol'循环对其进行迭代:for filename in files:

组标识符:文件按前3个字母分组:

^{3美元

输出:输出应该是嵌套列表,而不是dict,可以使用result = list(groupdict.values())

组合起来:files = ['001_1.png', '001_2.png', '001_3.png', '002_1.png','002_2.png',

'003_1.png', '003_2.png', '003_3.png']

import collections

groupdict = collections.defaultdict(list)

for filename in files:

group = filename[:3]

groupdict[group].append(filename)

result = list(groupdict.values())

print(result)

# [['001_1.png', '001_2.png', '001_3.png'],

# ['002_1.png', '002_2.png'],

# ['003_1.png', '003_2.png', '003_3.png']]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值