python3 有序字典

查看帮助文档:

可以发现,所谓有序字典,是记录了插入顺序

很显示 ,最后字典的顺序就是你插入键值对的顺序

方法介绍:(OD,代表字典名,点后面为方法)

OD.clear(), 清除所有键值对

OD.copy(), 浅拷贝

OD.fromkeys(s), 从s中得到key,如果不指定默认值,那么默认情况下会填充为None

#!/usr/bin/env python
#coding:utf-8
#@Author:Andy

from collections import OrderedDict
d = OrderedDict()
d = d.fromkeys([‘a‘, ‘z‘, ‘c‘], 2) # here set the default value as 2 if not it‘s None

print(d.items())

OD.items(),以集合的形式显示字典的键值对,如上图

OD.move_to_end()

from collections import OrderedDict
d = OrderedDict()
d = d.fromkeys([‘a‘, ‘z‘, ‘c‘], 2)
d.move_to_end(‘a‘, last=True)
print(d)  # OrderedDict([(‘z‘, 2), (‘c‘, 2), (‘a‘, 2)])
# 注意,只有当键存在时才有效,否则会报错

当last设置为False时, 字典本身没有变化。

OD.pop(k,d) ; 此方法有返回值,它移除指定的键,返回该键对应的值。当键k不存在时,如果指定了d,也返回d,如果没有指定,则报错。

OD.popitem(): 返回并移除指定的键值对,键值对返回的顺序是:当last=True, 为先进后出,如果last=False,则先进先出。

OD.setdefault(k,d): 当字典中没有键k时,设置OD[k]=d

OD.values(): 返回字典值的对象

OD.update(E): 将E字典或者可迭代对象更新到OD中,可以指定keys方法,如果指定了keys()方法,作用相当于:for k in E D[k] = E[k]

    当没有指定keys()方法时,则相当于for k,v in E D[k] = E[k]

时间: 2024-11-07 04:21:29

python3 有序字典的相关文章

python 学习 有序字典

自定义创建有序字典类 dict的__getitem__方法 有些不同,想使用自定义__getitem__方法显示查询key的下标:需要研究 #/usr/bin/env python3 # -*- coding:utf-8 -*- # Author: ZSHAOX class mydict(dict): li = [] #定义列表用于有序的排列key值 def __setitem__(self, key, value): #自定义__setitem__方法,扩展父类方法 self.li.appen

有序字典

import collectionsdic1=collections.OrderedDict()dic3=collections.OrderedDict()dic1 ={ '#1':{'cpu':1, 'diskhard':3,'neicun':5}, '#2':{'cpu':2, 'diskhard':3,'neicun':5}, '#3':{'cpu':1, 'diskhard':4,'neicun':5},}dic2 ={ '#1':{'cpu':1, 'diskhard':3,'neic

C#高级编程五十四天----Lookup类和有序字典

Lookup类 Dictionary<Tkey,TValue>只为每个键支持一个值.新类Lookup<Tkey,TValue>是.NET3.5中新增的,它类似与Dictionary<Tkey,TElement>,但把键映射带一个值集上.这个类在程序及System.Core中实现,用System,Linq命名空间定义. Lookup<Tkey,TElement>的方法和属性如下表: 属性名或者方法名 说明 Count 属性Count返回集合中的元素个数 Ite

python学习笔记-Day8 下 (特殊方法、iter方法、super方法、有序字典实现、python单例模式)

使用特殊方法实现字典 # 使用像字典 dic['xx'] 带中括号的类使用 # 简要介绍 class Foo: # ① 对象[xx] 调用的方法 def __getitem__(self, item): return 'getitem' # ② 对象[xx] = xxx 调用的方法 def __setitem__(self, key, value): return 'setitem' # ③ del 对象[xx] 调用的方法 def __delitem__(self, key): return

python(3)-计数器,有序字典

计数器:Counter 在使用计数器之前需要先 import collections >>> import collections >>> obj = collections.Counter("abcde") >>> print(obj) Counter({'b': 1, 'a': 1, 'c': 1, 'e': 1, 'd': 1}) #分别统计每个字符出现的次数 >>> type(obj) <class

collections之有序字典和默认字典

#defaultdict的意思是定义一个dict,然后定义这个字典的value默认是一个什么类型 #如下,定义一个字典,该字典的value的值默认是listimport collectionsdef_dict = collections.defaultdict(list) def_dict['k1'].append('v1')print(def_dict['k1'])# ['v1']print(def_dict)# defaultdict(<class 'list'>, {'k1': ['v1

python创建有序字典OrderedDict()

python 有序字典OrderedDict # -*- coding:utf-8 -*- """ python有序字典 需导入模块collections """ import collections # 通过OrderedDict类创建的字典是有序的 dic = collections.OrderedDict() dic['k1'] = 'v1' dic['k2'] = 'v2' dic['k3'] = 'v3' print dic "

iOS开发——面试篇&amp;面试总结(四)实现有序字典

面试总结(四)实现有序字典 实现方法 按NSDictionary的key来对其进行排序: 将字典的Value再放到一个字典里面,key分别使用有序的字符串 先将字典转模型,再放到数组里面 先将dict的allkeys赋给一个数组,然后通过sortedArrayUsingComparator:方法对数组排序,然后遍历数组取字典对应key的值就ok 这里只说大概的两张方法的实现 方法一 1 NSArray *keys = [dict allKeys]; 2 NSArray *sortedArray

Python_Day_05 计数器(counter),有序字典(OrderDict),默认字典(defaultdict),可命名元祖(namedtuple),双向队列(deque),单项队列(deuqe.Queue)

Counter(计数器) 是一个字典的子类,存储形式同样为字典,其中存储的键为字典的元素,值为元素出现的次数,在使用之前我们需要先导入文件 import collections 初始化一个计数器 import collections # 初始化一个计数器 c = collections.Counter('sldfjoaoaufdlfuaof') print(c) # Counter({'f': 4, 'o': 3, 'a': 3, 'd': 2, 'u': 2, 'l': 2, 'j': 1,