如何在不使用Lambda或ItemGetter的情况下对嵌套字典进行排序?



这是我正在寻找的一个例子。我之前的代码,如果我想按姓氏排序:

from operator import getitem
main_dict = {}
main_dict['Kevin'] = {'ID': '1', 'Last Name': 'Jones', 'First Name': 'Kevin'}
main_dict['David'] = {'ID': '2', 'Last Name': 'Walker', 'First Name': 'David'}
sorted_lastname = sorted(main_dict.items(), key=lambda x: getitem(x[1], 'Last Name'))
print(sorted_lastname)

如何在不使用Lambda和itemgetter的情况下进行排序?

这是如何实现@buran的想法。

def func(tup):
key, d = tup
return d['Last Name']
main_dict = {}
main_dict['Kevin'] = {'ID': '1', 'Last Name': 'Jones', 'First Name': 'Kevin'}
main_dict['David'] = {'ID': '2', 'Last Name': 'Walker', 'First Name': 'David'}
sorted_lastname = sorted(main_dict.items(), key=func)
print(sorted_lastname)

使用正常功能

main_dict = {}
main_dict['Kevin'] = {'ID': '1', 'Last Name': 'Jones', 'First Name': 'Kevin'}
main_dict['David'] = {'ID': '2', 'Last Name': 'Walker', 'First Name': 'David'}
def func(item):
return item[1]['Last Name']
sorted_lastname = sorted(main_dict.items(), key=func)
print(sorted_lastname)

最新更新