我在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()
答案 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()
)