如何在python中对字典列表中的值进行唯一性和排序?

2024-04-26 10:16:49 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一份字典清单。每个字典都有相同的键,但每个键的值可能不同。如何获得按字母顺序排序的唯一值列表?假设每个值都是一个字符串。你知道吗

有没有比遍历每个字典、将每个值添加到一个列表、对该列表排序、然后删除非唯一值更好的方法?你知道吗


Tags: 方法字符串列表字典排序顺序字母
1条回答
网友
1楼 · 发布于 2024-04-26 10:16:49

我不确定它有多简单,但是使用groupbyset这可能会更短(Python2.x示例):

from itertools import chain, groupby
from operator import itemgetter

dicts = [{'a': 's1'}, {'a': 's2'}, {'a': 's2', 'b': 's3'}]

union = {k: sorted(set(map(itemgetter(1), items))) for k, items in
         groupby(sorted(chain.from_iterable(d.iteritems() for d in dicts)),
                 key=itemgetter(0))}

# union = {'a': ['s1', 's2'], 'b': ['s3']}

相关问题 更多 >