Python高级编程技巧实战学习_Day05

学习资源传送门: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,实现了对字典对象中元素的排序。

参考:Python raw_input() 函数 | 菜鸟教程 (runoob.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值