列表如何按元素或元素的特定规则进行分组?例如,将下面的列表元素按照首字母进行分组:
python
ls = ['A01', 'A02', 'B13', 'B14', 'B15', 'C06']
那么,如何将上述列表元素分成三组呢?Python列表元素分组主要有两种常用方式:
1、使用字典
字典可以实现列表的分组操作。可以将元素或元素的特定规则作为字典的键,将元素作为字典的值。如果字典中已经存在该键,则将元素附加到该键对应的值的列表中
以下是一个示例:
python
groups = {}
for key in ls:
if key[0] in groups:
groups[key[0]].append(key)
else:
groups[key[0]] = [key]
print(groups)
'''
{'A': ['A01', 'A02'], 'B': ['B13', 'B14', 'B15'], 'C': ['C06']}
'''
2、使用collections模块
collections
模块提供了一个名为defaultdict
的工具类,可以方便地创建一个字典,同时为不存在的键提供默认值。可以使用该类来实现将列表按值分组的功能
以下是一个示例:
python
from collections import defaultdict
groups = defaultdict(list)
for key in ls:
groups[key[0]].append(key)
print(dict(groups))
'''
{'A': ['A01', 'A02'], 'B': ['B13', 'B14', 'B15'], 'C': ['C06']}
'''