我已经创建了一个Python字典,其键的形式如下:
11, 10, 00, 01, 20, 21, 31, 30
这些键是字符串。
我想要以这些排序方式来维护我的字典:
00, 10, 20, 30, 01, 11, 21, 31
这是基于键的第二个值。
我尝试了这个sorted(dict.items(), key = lambda s: s[1])
,得到了以下这些键:
20, 30, 21, 31, 01, 11, 10, 00
有人能指导我吗?
我已经创建了一个Python字典,其键的形式如下:
11, 10, 00, 01, 20, 21, 31, 30
这些键是字符串。
我想要以这些排序方式来维护我的字典:
00, 10, 20, 30, 01, 11, 21, 31
这是基于键的第二个值。
我尝试了这个sorted(dict.items(), key = lambda s: s[1])
,得到了以下这些键:
20, 30, 21, 31, 01, 11, 10, 00
有人能指导我吗?
sorted(dict.items(), key=lambda s: s[0])
s[0][1]
。 - Jon Clementskey=lambda (key, val): key[1]
也不会有什么坏处,这样可以更明确。 - Jon Clementsoperator.itemgetter
و¥و‘†è„±lambdaçڑ„و··ن¹±ه‘¢ï¼ں :P - kojirodict()
中以再次获取一个dict。 - Ry-dict.keys().sort(key = lambda s: s[1])
来进行迭代或者继续操作。.sort
方法应用于列表时是就地排序,而该列表是短暂的。下次获取 dict.keys()
时,它将不会被排序。它不会是同一个列表。 - kojirox = dict.keys()
然后 x.sort(...)
。谢谢! - adarsh
items
返回一个元组列表,其中第一项是键,第二项是值。因此,如果您想按键排序,应该使用sorted(dict.items(), key = lambda s: s[0])
但在这种情况下,您得到的是升序排列的键如果您想按照您的示例排序11, 10, 00, 01, 20, 21, 31, 30
00, 10, 20, 30, 01, 11, 21, 31
您应该在排序函数中反转您的键sorted(dict.items(), key = lambda s: ''.join(reversed(s[0])))
- oleg