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‘]})
#有序字典,用OrderedDict来创建一个有序的字典

import collectionsorder_dict = collections.OrderedDict()order_dict[‘k1‘] = ‘v1‘order_dict[‘k2‘] = ‘v2‘order_dict[‘k3‘] = ‘v3‘order_dict[‘k4‘] = ‘v4‘print(order_dict)

# OrderedDict([(‘k1‘, ‘v1‘), (‘k2‘, ‘v2‘), (‘k3‘, ‘v3‘), (‘k4‘, ‘v4‘)])

#有序字典中还有一些方法,这个和字典中的方法是一致的

#move_to_end,把某个key的值放在最后order_dict.move_to_end(‘k2‘)print(order_dict)

# OrderedDict([(‘k1‘, ‘v1‘), (‘k3‘, ‘v3‘), (‘k4‘, ‘v4‘), (‘k2‘, ‘v2‘)])

#popitem,删除ordereddict的最后一个key的值

order_dict.popitem()print(order_dict)

# OrderedDict([(‘k1‘, ‘v1‘), (‘k3‘, ‘v3‘), (‘k4‘, ‘v4‘)])

#pop,从ordereddict中拿走指定key的值,同样,pop也可以拿到删除的key对应的value的值ret = order_dict.pop(‘k3‘)print(order_dict)# OrderedDict([(‘k1‘, ‘v1‘), (‘k4‘, ‘v4‘)])print(ret)# v3

#setdefault,给字典设置默认的value的值,下面这两种设置默认value的值的方法是等同的order_dict[‘k2‘] = Noneorder_dict.setdefault(‘k3‘)print(order_dict)

# OrderedDict([(‘k1‘, ‘v1‘), (‘k4‘, ‘v4‘), (‘k2‘, None), (‘k3‘, None)])#setdefault也可以对添加的key设置指定的value的值order_dict.setdefault(‘k5‘,‘v5‘)print(order_dict)

#OrderedDict([(‘k1‘, ‘v1‘), (‘k4‘, ‘v4‘), (‘k2‘, None), (‘k3‘, None), (‘k5‘, ‘v5‘)])

#update,更新字典,如果有对应的key,则更新key的值,如果没有则添加新key到字典中order_dict.update({‘k6‘:‘v6‘,‘k7‘:‘v7‘})print(order_dict)

# OrderedDict([(‘k1‘, ‘v1‘), (‘k4‘, ‘v4‘), (‘k2‘, None), (‘k3‘, None), (‘k5‘, ‘v5‘), (‘k6‘, ‘v6‘), (‘k7‘, ‘v7‘)])
时间: 2024-10-14 22:18:46

collections之有序字典和默认字典的相关文章

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,

defaultdict默认字典

import collections as con #默认字典数据类型(参数填数据类型) dic = con.defaultdict(list) dic['a'].append(55) print(dic,'defaultdict')

有序字典与普通字典的区别

python有序字典与普通字典的区别 ? ? 最近的django开发中用到了有序字典,所以研究了一下,以下. 示例: 有序字典和通常字典类似,只是它可以记录元素插入其中的顺序,而一般字典是会以任意的顺序迭代的. 普通字典: 1 d1={} 2 d1['a']='A' 3 d1['b']='B' 4 d1['c']='C' 5 d1['d']='D' #此时的d1 = {'a':'A','b':'B','c':'C','d':'D'} 6 for k,v in d1.items(): 7 prin

python 设置默认字典

访问字典中某个'键'时,若键不存在则会报错,比如 >>> dic = {'a' : 1} >>> dic['b'] Traceback (most recent call last): File "<pyshell#24>", line 1, in <module> dic['b'] KeyError: 'b' 如果不想报错,可以给字典设置默认值.即当键存在时,返回键对应的值:键不存在时,返回默认值: 1 字典自带的 setd

默认字典

默认字典,可以让字典的值默认是什么类型 使用场景:可以控制当前字典的值的类型. 默认字典并没有多少功能,大部分功能都是字典的

列表中嵌套字典,根据字典的值排序

格式:数据类型为列表,列表元素为字典.由字典组织的列表形式. 分析:可以将列表中的字典先放入到一个大字典中,对整个字典进行排序,在排序完成后,再转换为列表包含字典的形式即可 现在有一个列表,根据每个字典的值进行排序. dict_list = [{"ming": 87}, {"mei": 93}, {"hua": 68}, {"jon": 75}, {"ston": 100}, {"jack&quo

poj 3630 Phone List (字典树 +静态字典树)

Phone List Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 22235   Accepted: 6885 Description Given a list of phone numbers, determine if it is consistent in the sense that no number is the prefix of another. Let's say the phone catalogu

字典与可变字典

字典的定义以及使用 不可变字典 1.在字典里 键 和 值是成对出现的    字典是通过键(Key)来存取值的且每一个值对应的Key是唯一的   字典的类名是NSDictionary 2.字典的定义  (1)初始化一个空字典 NSDictionary *dic = [[NSDictionary alloc] init]; NSDictionary *dic1 = [NSDictionary dictionary]; (2)初始化的同时添加一对键值  这种定义方式是前面是值(id)  后面是键 NS

python之collections之有序字典(OrderedDict)

一.定义OrderedDict是对字典的补充,它记住了字典元素的添加顺序.eg: 二.OrderedDict相关方法def clear(self): # real signature unknown; restored from __doc__ """ od.clear() -> None. Remove all items from od. 清除有序字典中的元素 """ passeg: def copy(self): # real sig