如何按值对一个键为元组的字典进行排序

13 浏览
0 Comments

如何按值对一个键为元组的字典进行排序

我有一个字典\n

 d = {('08', '10010'):6, ('23', '10017'):6,('06444', '10028'): 6,('21', '10027'): 6}

\n我想根据第二个值进行排序\n如果我有一个项目(x,y):z,我需要基于y进行排序\n我尝试了以下代码但没有成功\n

print sorted(d, key=lambda item:item[0][1])

\n有什么想法吗?

0
0 Comments

从上面的内容中,我们可以看到问题的出现原因是希望按照字典的值对字典进行排序,但是字典的键是一个元组。在给出的代码中,使用了lambda函数来指定排序的依据,即按照键的第二个元素进行排序。

解决方法是使用sorted()函数来对字典进行排序,同时使用lambda函数来指定排序的依据。在lambda函数中,通过x[1]来获取键的第二个元素,并按照该元素进行排序。最后,将排序后的结果打印出来。

注意,代码中的sorted函数返回的是排序后的键的列表,而不是排序后的字典。如果希望获取包含键和值的完整字典视图,需要将d改为d.items()。

总结起来,解决该问题的方法是使用sorted函数对字典进行排序,通过lambda函数指定排序的依据。

0
0 Comments

问题的出现原因是在对字典进行排序时,需要按照键的元组的第二个值进行排序,但是忘记了使用.items()方法来获取字典的键值对。

解决方法有两个:

1. 使用.items()方法来获取字典的键值对,并使用lambda函数对键进行排序。代码如下:

print sorted(d.items(), key=lambda item:item[0][1])

这将返回一个按照键的元组的第二个值进行排序的列表。

2. 如果需要按照这个排序标准创建一个有序字典,则需要使用collections模块中的OrderedDict对象。默认字典中键的顺序是不保证的。代码如下:

print dict(sorted(d.items(), key=lambda item:item[0][1]))

这将返回一个按照键的元组的第二个值进行排序的有序字典。

使用OrderedDict的代码如下:

from collections import OrderedDict
print OrderedDict(sorted(d.items(), key=lambda item:item[0][1]))

这将返回一个按照键的元组的第二个值进行排序的有序字典。

0