在Python中,可以使用defaultdict
来按具有子属性的行数据进行分组。下面是一个示例代码:
from collections import defaultdict
# 示例数据
data = [
{'name': 'Alice', 'age': 25, 'city': 'New York'},
{'name': 'Bob', 'age': 30, 'city': 'San Francisco'},
{'name': 'Charlie', 'age': 35, 'city': 'New York'},
{'name': 'David', 'age': 40, 'city': 'San Francisco'},
{'name': 'Alice', 'age': 20, 'city': 'New York'}
]
# 使用defaultdict创建一个字典,以子属性作为键,列表作为值
grouped_data = defaultdict(list)
# 遍历数据,将每个行数据添加到对应的子属性列表中
for row in data:
grouped_data[row['city']].append(row)
# 打印分组结果
for city, rows in grouped_data.items():
print(f"{city}: {rows}")
输出:
New York: [{'name': 'Alice', 'age': 25, 'city': 'New York'}, {'name': 'Charlie', 'age': 35, 'city': 'New York'}, {'name': 'Alice', 'age': 20, 'city': 'New York'}]
San Francisco: [{'name': 'Bob', 'age': 30, 'city': 'San Francisco'}, {'name': 'David', 'age': 40, 'city': 'San Francisco'}]
在上面的示例中,我们使用defaultdict(list)
创建了一个字典grouped_data
,其中键为子属性(这里以city
为例),值为一个空列表。然后,我们遍历数据列表,将每个行数据添加到相应的子属性列表中。最后,我们打印出分组结果。
这种方法可以应用于任何具有子属性的行数据分组,只需根据具体情况修改相应的子属性键即可。
上一篇:按具有null属性的类进行过滤
下一篇:按矩阵的列对列表中的值进行排序