在Python

时间:2018-01-16 18:41:23

标签: python

我想在不使用sort函数的情况下对列表中的字典值进行排序。我尝试过以下但是它不能正常工作

dict1={"one":1,"two":2,"three":3}
list1=[]
for i in range(len(dict1)):
    sml=[a for a in dict1.values() if a ==min(dict1.values())]
    key1=[k for k,v in dict1.items() if v ==min(dict1.values())]
    del dict[key1]
    list1.append(sml)

print(list1)

1 个答案:

答案 0 :(得分:0)

你的方法几乎就在那里。你唯一的错误是行

sml=[a for a in dict1.values() if a ==min(dict1.values())]
key1=[k for k,v in dict1.items() if v ==min(dict1.values())]

实际上使smlkey1列表包含第一个包含最小值的唯一元素,第二个包含最小值的键作为其唯一元素。
(语法x = [....]将使x成为一个列表,即使只有一个元素。)

所以一切都将通过将这些行设为:

来修复
sml=[a for a in dict1.values() if a ==min(dict1.values())][0]
key1=[k for k,v in dict1.items() if v ==min(dict1.values())][0]