from itertools import groupby
from operator import itemgetter
sorted_keys = sorted(original_dict, key=lambda key: (key[0], -original_dict[key]))
for primary_key, key_group in groupby(sorted_keys, key=itemgetter(0)):
print(primary_key, [key[1] for key in key_group])
k = {} # Our new dictionary
for key in d.keys():
(Pri_key, Sec_key) = key
try:
k[Pri_key].append(Sec_key)
except KeyError:
k[Pri_key] = [Sec_key] # Make a new list if the new key doesn't exist
# Make a list of sorted keys
keys = [key for key in d.keys()]
keys.sort()
for key in keys:
list = d[key]
list.sort()
print(key + ':' + list)
这里的关键是原样的。之后,您可以在主键上
groupby
。要构造排序,可以用键关闭(<primary-key>, -<value>)
的元组(负数是按降序对具有相同主键的值进行排序):当然,如果您可以打印键,那么您可以使用它来构造字典(或任何其他数据结构),使用结果:-)。在
下面是我的终端演示:
^{pr2}$我们需要迭代这些键,然后用复合键的第二个值构建另一个字典,作为这个新字典指向的列表的一部分。然后我们对新字典的值进行排序。观察。在
假设您的原始字典名为
d
。在给你。在
一个衬垫:
更清晰:
^{pr2}$相关问题 更多 >
编程相关推荐