我确定已经问到并回答了,但我找不到。我有这本词典:
{'22775': 15.9,
'22778': 29.2,
'22776': 20.25,
'22773': 9.65,
'22777': 22.9,
'22774': 12.45}
一个字符串和一个浮点数。
我想在tk列表框中列出关键字符串,以允许用户选择一个,然后在计算中使用相应的浮点数来确定事件中的延迟因子。
我有这段代码:
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)]
我确定我做的事情愚蠢,我只是不知道它是什么。
答案 0 :(得分:0)
当您要使用items
时,您正在使用keys
:
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()
为你提供(键,值)的元组; d.keys()
只是给你一把钥匙。