【发布时间】:2014-09-03 22:06:06
【问题描述】:
首先,我知道有很多关于字典排序的帖子,但我找不到一个完全适合我的情况的帖子——而且我只是不理解 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"
现在为了打印,我执行以下操作(其中响应是字典):
for keys, values in response.items():
print("Name= " + keys)
print (" Age= " + values.age)
print (" Address= " + values.address)
print (" Phone Number= " + values.phone)
当用户要求打印出用户数据库时,我希望它根据用作 KEY 的“名称”按字母顺序打印。
我得到了一切工作 - 但它没有排序 - 在开始手动排序之前,我想也许有一种内置的方法可以做到这一点......
谢谢,
【问题讨论】:
-
为什么接受降低键的答案?你没有指定你想要那个。
-
这是最佳答案:
sorted_dict = {key: value for key, value in sorted(unsorted_dict.items())} -
@Charlie Parker lower() 用于键的排序,在 sorted() 中 key= 参数用于指定要查找和比较的内容(在本例中为小写键),不是在返回值中使用什么,所以没关系,排序后的 dict 将具有相同的键
标签: python sorting dictionary