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