学习资源传送门:https://www.bilibili.com/video/BV1b5411s76z?p=6
(一)问题描述:如何让字典保持有序
(二)解决方案
(三)代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/11/28 18:05
# @Author : Qiufen.Chen
# @Email : 1760812842@qq.com
# @File : keep_order.py
# @Software: PyCharm
"""如何让字典保持有序"""
from time import time
from random import randint
from collections import OrderedDict
d = OrderedDict()
players = list("ABCDEFGH")
start = time()
for i in range(8):
input("input:")
p = players.pop(randint(0, 7-i))
end = time()
print(i+1, p, end-start)
d[p] = (i + 1, end - start)
print()
print('-'*20)
for k in d:
print(k, d[k])
# output
'''
input:A
1 G 8.186851978302002
input:B
2 F 10.572628736495972
input:C
3 A 12.20886778831482
input:D
4 E 13.472330570220947
input:E
5 D 15.037047624588013
input:F
6 B 16.38536500930786
input:G
7 C 17.911449432373047
input:H
8 H 19.433364391326904
--------------------
G (1, 8.186851978302002)
F (2, 10.572628736495972)
A (3, 12.20886778831482)
E (4, 13.472330570220947)
D (5, 15.037047624588013)
B (6, 16.38536500930786)
C (7, 17.911449432373047)
H (8, 19.433364391326904)
'''
--------------------------------------------------------------------------------------
注:很多人认为python中的字典是无序的,因为它是按照hash来存储的,但是python中有个模块collections,里面自带了一个子类OrderedDict,实现了对字典对象中元素的排序。