1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| from operator import itemgetter import pandas as pd
my_list = [{'name': 'Homer', 'age': 39}, {'name': 'Bart', 'age': 10}, {'name': 'Milhouse', 'age': 10}]
sorted_list1 = sorted(my_list, key=lambda d: d['name']) print("使用lambda表达式排序:", sorted_list1)
sorted_list2 = sorted(my_list, key=itemgetter('name')) print("使用itemgetter排序:", sorted_list2)
sorted_list3 = sorted(my_list, key=itemgetter('name'), reverse=True) print("降序排序:", sorted_list3)
my_list.sort(key=itemgetter('name')) print("对原列表进行排序:", my_list)
sorted_list4 = sorted(my_list, key=lambda k: (k['age'], k['name'])) print("按多个键排序:", sorted_list4)
simpsons = [ {"name": "Homer", "age": 39}, {"name": "Bart", "age": 10}, {"name": "abby", "age": 9}, ] sorted_simpsons = sorted(simpsons, key=lambda k: k["name"].lower()) print("不区分大小写排序:", sorted_simpsons)
sort_on = "name" decorated = [(dict_[sort_on], dict_) for dict_ in my_list] decorated.sort() result = [dict_ for (key, dict_) in decorated] print("使用Schwartzian变换:", result)
df = pd.DataFrame(my_list) df = df.sort_values('name') sorted_list5 = df.T.to_dict().values() print("使用Pandas包:", list(sorted_list5))
|