簡體   English   中英

如何從python中的字典列表中對值進行唯一性和排序?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM