按字母顺序排序字典的字符串键(名称)
首先,我知道关于字典排序的帖子很多,但我找不到一个完全适合我情况的帖子,而且我对sorted(...lambda)这些东西也不太理解,所以我来问问。
我在使用Python 3.x,有一个字典,长这样:
dictUsers[Name] = namedTuple(age, address, email, etc...)
举个例子,我的字典看起来是这样的:
[John]="29, 121 bla, some@la.com"
[Jack]="32, 122 ble, some@la.com"
[Rudy]="42, 123 blj, some@la.com"
现在为了打印这个字典,我这样做(其中response是一个字典):
for keys, values in response.items():
print("Name= " + keys)
print (" Age= " + values.age)
print (" Address= " + values.address)
print (" Phone Number= " + values.phone)
当用户要求打印用户数据库时,我希望它能根据“name”这个键按字母顺序打印出来。
我把所有东西都弄好了,但它没有排序。在我开始手动排序之前,我想也许有内置的方法可以做到这一点……
谢谢,
7 个回答
2
你可以使用 OrderedDict
和 sorted
一起使用:
from collections import OrderedDict
test_dict = {}
ordered_dict = OrderedDict(sorted(test_dict.items(), key=lambda t: t[0]))
4
dict1={"d":1,"a":3,"z":0}
x=sorted(dict1.items())
print(x)
输出
[('a', 3), ('d', 1), ('z', 0)]
13
dictio = { 'Epsilon':5, 'alpha':1, 'Gamma':3, 'beta':2, 'delta':4 }
sortedDict = dict( sorted(dictio.items(), key=lambda x: x[0].lower()) )
for k,v in sortedDict.items():
print('{}:{}'.format(k,v))
输出
alpha:1
beta:2
delta:4
Epsilon:5
Gamma:3
38
我会这样做:
sorted_dict = {key: value for key, value in sorted(unsorted_dict.items())}
25
这是一个简单的算法,用来按字母顺序排序字典的键。首先,使用 sorted
来对键进行排序。
sortednames=sorted(dictUsers.keys(), key=lambda x:x.lower())
然后,对于每个键名,从字典中获取对应的值。
for i in sortednames:
values=dictUsers[i]
print("Name= " + i)
print (" Age= " + values.age)
print (" Address= " + values.address)
print (" Phone Number= " + values.phone)