码迷,mamicode.com
首页 > 其他好文 > 详细

如何让字典保持有序

时间:2019-11-18 20:06:39      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:对象   rand   cti   标准库   tool   play   dict   ice   name   

使用标准库collections中的OrderedDict

以OrderedDict替代内置字典Dict,依次将选手成绩存入OrderedDict

from collections import OrderedDict
od = OrderedDict()
od['c'] = 1
od['b'] = 2
od['a'] = 3
list(iter(od))

执行结果:

['c', 'b', 'a']
from collections import OrderedDict
od = OrderedDict()
# 制造数据
players = list('abcdefgh')
from random import shuffle
shuffle(players) #洗牌函数,将列表打乱
for i, p in enumerate(players, 1):
    od[p] = i

def query_by_name(d, name):
    return d[name]

query_by_name(od, 'e') #查询e的名次

from itertools import islice #为可迭代对象制作切片
def query_by_order(d, a, b = None):
    a -= 1
    if b is None:
        b = a + 1
    return list(islice(od, a, b))

print(od)
query_by_order(od, 4, 6)

执行结果:

OrderedDict([('f', 1), ('h', 2), ('a', 3), ('e', 4), ('d', 5), ('c', 6), ('b', 7), ('g', 8)])
['e', 'd', 'c']

如何让字典保持有序

标签:对象   rand   cti   标准库   tool   play   dict   ice   name   

原文地址:https://www.cnblogs.com/huowuyan/p/11884479.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!