python return 已排序的字典键列表
python return list of sorted dictionary keys
我确定有人询问并回答了这个问题,但我找不到。我有这本字典:
{'22775': 15.9,
'22778': 29.2,
'22776': 20.25,
'22773': 9.65,
'22777': 22.9,
'22774': 12.45}
一个字符串和一个浮点数。
我想在 tk 列表框中列出关键字符串,以允许用户 select 一个,然后在计算中使用相应的浮点数来确定事件中的延迟因子。
我有这个代码:
def dic_entry(line):
#Create key:value pairs from string
key, sep, value = line.strip().partition(":")
return key, float(value)
with open(filename1) as f_obj:
s = dict(dic_entry(line) for line in f_obj)
print (s) #for testing only
s_ord = sorted(s.items(),key=lambda x: x[1])
print (s_ord)
第一张让我心动
{'22775': 15.9,
'22778': 29.2,
'22776': 20.25,
'22773': 9.65,
'22777': 22.9,
'22774': 12.45}
符合预期。第二个,我希望它能给我一个有序的键列表让我
[('22773', 9.65),
('22774', 12.45),
('22775', 15.9),
('22776', 20.25),
('22777', 22.9),
('22778', 29.2)].
我已经尝试使用集合模块中的 sorteddictionary
,它给了我一个排序的字典,但我在提取键列表时遇到了问题。
s_ord2 = []
for keys in s.items():
s_ord2.append (keys)
print (s_ord2)
给我一个键值对列表:
[('22776', 20.25),
('22777', 22.9),
('22774', 12.45),
('22773', 9.65),
('22778', 29.2),
('22775', 15.9)]
我确定我在做一些愚蠢的事情,我只是不知道那是什么。
当您想使用 keys
时,您正在使用 items
:
In [1]: d = {'z': 3, 'b': 4, 'a': 9}
In [2]: sorted(d.keys())
Out[2]: ['a', 'b', 'z']
In [3]: sorted(d.items())
Out[3]: [('a', 9), ('b', 4), ('z', 3)]
d.items()
给你 (key, value) 的元组; d.keys()
只给你钥匙。
我确定有人询问并回答了这个问题,但我找不到。我有这本字典:
{'22775': 15.9,
'22778': 29.2,
'22776': 20.25,
'22773': 9.65,
'22777': 22.9,
'22774': 12.45}
一个字符串和一个浮点数。
我想在 tk 列表框中列出关键字符串,以允许用户 select 一个,然后在计算中使用相应的浮点数来确定事件中的延迟因子。
我有这个代码:
def dic_entry(line):
#Create key:value pairs from string
key, sep, value = line.strip().partition(":")
return key, float(value)
with open(filename1) as f_obj:
s = dict(dic_entry(line) for line in f_obj)
print (s) #for testing only
s_ord = sorted(s.items(),key=lambda x: x[1])
print (s_ord)
第一张让我心动
{'22775': 15.9,
'22778': 29.2,
'22776': 20.25,
'22773': 9.65,
'22777': 22.9,
'22774': 12.45}
符合预期。第二个,我希望它能给我一个有序的键列表让我
[('22773', 9.65),
('22774', 12.45),
('22775', 15.9),
('22776', 20.25),
('22777', 22.9),
('22778', 29.2)].
我已经尝试使用集合模块中的 sorteddictionary
,它给了我一个排序的字典,但我在提取键列表时遇到了问题。
s_ord2 = []
for keys in s.items():
s_ord2.append (keys)
print (s_ord2)
给我一个键值对列表:
[('22776', 20.25),
('22777', 22.9),
('22774', 12.45),
('22773', 9.65),
('22778', 29.2),
('22775', 15.9)]
我确定我在做一些愚蠢的事情,我只是不知道那是什么。
当您想使用 keys
时,您正在使用 items
:
In [1]: d = {'z': 3, 'b': 4, 'a': 9}
In [2]: sorted(d.keys())
Out[2]: ['a', 'b', 'z']
In [3]: sorted(d.items())
Out[3]: [('a', 9), ('b', 4), ('z', 3)]
d.items()
给你 (key, value) 的元组; d.keys()
只给你钥匙。