JSc*_*rtz 5 python sorting dictionary
首先,我知道有很多关于字典排序的帖子,但我找不到一个完全符合我的情况的帖子 - 我只是不理解排序的(... lambda)东西 - 所以这里就是这样.
使用Python 3.x我有一个这样的字典:
dictUsers[Name] = namedTuple(age, address, email, etc...)
Run Code Online (Sandbox Code Playgroud)
作为一个例子,我的字典看起来像
[John]="29, 121 bla, some@la.com"
[Jack]="32, 122 ble, some@la.com"
[Rudy]="42, 123 blj, some@la.com"
Run Code Online (Sandbox Code Playgroud)
现在打印我做以下(响应是字典):
for keys, values in response.items():
print("Name= " + keys)
print (" Age= " + values.age)
print (" Address= " + values.address)
print (" Phone Number= " + values.phone)
Run Code Online (Sandbox Code Playgroud)
当用户要求打印出用户数据库时,我希望它根据用作KEY的"名称"按字母顺序打印.
我得到了一切 - 但它没有排序 - 在开始手动排序之前我想也许有一种内置的方法来做...
谢谢,
小智 37
我会这样做:
sorted_dict = {key: value for key, value in sorted(unsorted_dict.items())}
Run Code Online (Sandbox Code Playgroud)
按字母顺序对dictonary键进行排序的简单算法,首先使用键对键进行排序 sorted
sortednames=sorted(dictUsers.keys(), key=lambda x:x.lower())
Run Code Online (Sandbox Code Playgroud)
对于每个键名,从dict中检索值
for i in sortednames:
values=dictUsers[i]
print("Name= " + i)
print (" Age= " + values.age)
print (" Address= " + values.address)
print (" Phone Number= " + values.phone)
Run Code Online (Sandbox Code Playgroud)
小智 7
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))
Run Code Online (Sandbox Code Playgroud)
输出
alpha:1
beta:2
delta:4
Epsilon:5
Gamma:3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12086 次 |
| 最近记录: |