data_list = [{1: "1"}, {3: "3"}, {4: "4"}, {10: "10"}, {7: "7"}, {6: "6"}],
类似这样的数据,怎么用 sort 去排序,sort 里的 key 关键字参数要怎么写
类似这样的数据,怎么用 sort 去排序,sort 里的 key 关键字参数要怎么写
|
AkikikiAug 19, 2020
1
data_list.sort(key=lambda x: x.keys()[0])
|
|
casatAwayAug 19, 2020
3
就假设你的字典都是一个 key,sorted(data_list, key=lambda k: list(k.keys())[0])
|
|
4
@h272377502 对呀,转化一下类型就好了,厉害
|
|
mahonejollaAug 19, 2020
6
data_list = [{1: "1"}, {3: "3"}, {4: "4"}, {10: "10"}, {7: "7"}, {6: "6"}]
kk = data_list.sort(key=lambda x: list(x.keys())[0]) print(data_list) # [{1: '1'}, {3: '3'}, {4: '4'}, {6: '6'}, {7: '7'}, {10: '10'}] kk = sorted(data_list, key=lambda k: list(k.keys())[0]) print(kk) # [{1: '1'}, {3: '3'}, {4: '4'}, {6: '6'}, {7: '7'}, {10: '10'}] |
|
lithbitrenAug 21, 2020
7
data_list.sort(key=lambda x: next(iter(x)))
不转 list 也可以实现 |
|
yucongoAug 21, 2020 via Android
8
sorted(data_list, key=lambda x: [*x])
|
|
10
@lithbitren 高级
|
|
yucongoAug 21, 2020
11
In [43]: data_list = [{1: "1"}, {3: "3"}, {4: "4"}, {10: "10"}, {7: "7"}, {6: "6"}]
In [44]: sorted(data_list, key=lambda x: [*x]) Out[44]: [{1: '1'}, {3: '3'}, {4: '4'}, {6: '6'}, {7: '7'}, {10: '10'}] 完全用你的数据,python3.6, 顺序怎么没有变呢 |
|
yucongoAug 21, 2020
12
或( in-place ):
data_list.sort(key=lambda x: [*x]) |
|
lithbitrenAug 22, 2020
14
|
|
15
@lithbitren 原来如此,受教了
|
|
yucongoAug 22, 2020
16
对啊,key=list 就行了……
那么可以来一个最短的:) sorted(data_list, key=set) 或 data_list.sort(key=set) |