繁体   English   中英

我如何对它们是列表的字典值进行排序或排序?

[英]how I sort or sorted dictionary values that they are lists?

我得到了反转字典中的键和值的分配,我需要对每个值列表进行排序或排序,有什么建议吗? 这是我的代码:

def inverse_dict(my_dict):
    my_inverted_dict = dict()
    for key, value in my_dict.items():
        my_inverted_dict.setdefault(value, list()).append(key)
    return my_inverted_dict
dict1 ={'love': 3, 'I': 3,  'self.py!': 2}
print(inverse_dict(dict1))

output 需要是: {3: ['I','love'], 2: ['self.py!']}

一种简单的方法是在末尾遍历字典中的所有值,并对每个列表调用sort

for v in my_inverted_dict.values():
    v.sort()
return my_inverted_dict

另一种方法可能是这样的:

from operator import itemgetter
from itertools import groupby

def inverse_dict(my_dict):
    return {k:[i for i,_ in g] for k,g in groupby(sorted(dict1.items(), key=itemgetter(1,0)),key=itemgetter(1))}

dict1 ={'love': 3, 'I': 3,  'self.py!': 2}
print(inverse_dict(dict1))  # {2: ['self.py!'], 3: ['I', 'love']}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM