[英]How to Unique and Sort values from a list of dictionaries in python?
假設我有一個字典列表。 每個字典具有相同的鍵,但每個鍵可能具有不同的值。 如何獲得按字母順序排序的唯一值列表? 假設每個值都是一個字符串。
有沒有比遍歷每個字典,將每個值添加到列表,對該列表進行排序然后刪除非唯一值更好的方法了?
我不確定它有多簡單,但是使用groupby和設置它可以更短(python 2.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']}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.