A. *_*lli 3 python sorting dictionary
我一直在尝试命令我的dict具有这种格式的键:"0:0:0:0:0:x"其中x是在填充dict时增加的变量.
由于字典没有按顺序插入,并且我需要显示有序的键值值,我尝试使用
collections.OrderedDict(sorted(observation_values.items())
Run Code Online (Sandbox Code Playgroud)
其中observation_values是我的dict,但值是关于第一个数字的命令,如下所示:
"0:0:0:0:0:0": [0.0], "0:0:0:0:0:1": [0.0], "0:0:0:0:0:10": [279.5],
"0:0:0:0:0:100": [1137.8], "0:0:0:0:0:101": [1159.4], "0:0:0:0:0:102":
[1180.3], "0:0:0:0:0:103": [1193.6]...
Run Code Online (Sandbox Code Playgroud)
直到"0:0:0:0:0:109"然后回"0:0:0:0:0:11",然后再次"0:0:0:0:0:110",..:111,..:112.
如何避免仅使用最重要的数字进行订购?
您正在排序字符串,因此它们按字典顺序排序,而不是数字排序.
给sorted()自定义排序关键字:
sortkey = lambda i: [int(e) for e in i[0].split(':')]
collections.OrderedDict(sorted(observation_values.items(), key=sortkey))
Run Code Online (Sandbox Code Playgroud)
这将获取每个键值对(i[0])的键,将其拆分为:冒号并将该键中的每个数字转换为整数.现在,按键将按字典顺序对各部分进行排序,每个部分按数字顺序进行排序; 现在0:0:0:0:0:1排序,0:0:0:0:0:100然后排序0:0:0:0:1:0.
| 归档时间: |
|
| 查看次数: |
189 次 |
| 最近记录: |