如何对包含变量的字典进行排序? (也保存到文件)

时间:2017-05-17 19:55:50

标签: python dictionary

我在python中创建一个脚本来获取用户的名字和单圈时间,然后将其保存到字典中,然后将其保存到文件中。如何对字典进行排序,使其首先显示最低的数字,然后再显示四个以上的分数?

def lap():

    username = str(input("Name: "))
    time = str(input("Lap Time: "))
    lap_det = {}

    lap_det = str([username + " : " + time])

    with open("lap_time.txt", "w") as f:
        f.write(lap_det)

    with open("lap_time.txt", "r") as f:
        print(f.readlines())

    user_r = input("Press r to restart >>> ")
    if user_r == "r":
        lap()
    else:
        quit()

lap()

2 个答案:

答案 0 :(得分:0)

Python的dict默认是无序的。但是在Python 3.6中,字典当前保持其插入顺序。无论如何,我建议使用OrderedDict

>>> laps = {'foo': 12, 'bar': 10, 'fizz': 15, 'buzz': 7}
>>> OrderedDict(sorted(laps.items(), key=lambda k: k[1]))
OrderedDict([('buzz', 7), ('bar', 10), ('foo', 12), ('fizz', 15)])

关于这个问题还有一些其他的答案,例如:

答案 1 :(得分:-1)

您无法对字典进行排序。

但是,如果您希望以与键相同的顺序获取字典的值,则可以使用:

for key in sorted(dic):
    print(dic[key])

(注意:这只会打印出来)

请注意,使用sorted(dic) 不会对字典进行排序,而只会迭代其键(因为迭代字典dic会迭代dic.keys()