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

2024-05-14 13:02:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用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()

Tags: 文件txt脚本input字典timeaswith
2条回答

Python的dict在默认情况下是无序的。但是,在Python3.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)])

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

你不能给字典分类。你知道吗

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

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

(注意:这将只打印它们)

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

相关问题 更多 >

    热门问题