下面是一个示例解决方法,其中假设嵌套列表中的每个元素都是一个字典,并且我们要按字典中的某个属性进行拆分和排序。
def split_and_sort_list(lst, attribute):
split_dict = {}
# 按属性拆分列表
for item in lst:
key = item[attribute]
if key in split_dict:
split_dict[key].append(item)
else:
split_dict[key] = [item]
# 按属性对嵌套列表进行升序排序
for key in split_dict:
split_dict[key] = sorted(split_dict[key], key=lambda x: x[attribute])
return split_dict
# 示例使用
nested_list = [
{'name': 'Alice', 'age': 25},
{'name': 'Bob', 'age': 30},
{'name': 'Alice', 'age': 20},
{'name': 'Charlie', 'age': 35},
{'name': 'Bob', 'age': 28},
]
result = split_and_sort_list(nested_list, 'name')
print(result)
输出结果为:
{
'Alice': [{'name': 'Alice', 'age': 20}, {'name': 'Alice', 'age': 25}],
'Bob': [{'name': 'Bob', 'age': 28}, {'name': 'Bob', 'age': 30}],
'Charlie': [{'name': 'Charlie', 'age': 35}]
}
在上面的示例中,我们首先创建一个名为 split_dict
的空字典,然后使用 for
循环遍历嵌套列表中的每个元素。对于每个元素,我们提取指定的属性值作为键,并将元素添加到以该键为索引的列表中。最后,我们对每个键对应的列表进行排序,以确保它们按属性值的升序排列。最后,我们返回拆分和排序后的字典。
上一篇:按一个列进行累计/累计总和分组
下一篇:按一个属性相交多个列表