python数据结构总结:字典
来源:互联网 发布:mt7282 数据手册 编辑:程序博客网 时间:2024/05/22 13:13
字典
可变的,无序的,key不重复
{key1:value1, key2:value2, key3:value3}key 可散列的数据类型(str, bytes and 数值类型) value 无要求
初始化字典
d = dict()d = {}d = {'a': 10, 'b': 20, 'c': None, 'd':[1, 2, 3]} dict(**kwargs) # 使用name=value初始化一个字典dict(iterable, **kwargs) # 使用可迭代对象和name=value对构造字典 d = dict((('1', a), (2, 'b'))) # 不推荐使用 d = dict(([1, 'a'], [2, 'b'])) # 不推荐使用dict(mapping, **kwargs) # 使用一个字典构建另一个字典类方法 dict.fromkeys(iterable, value) 处理找不到键的一个选择 d = dict.fromkeys(range(5)) d = dict.fromkeys(range(5), 0)
访问字典
dict[key] 不存在,返回KeyErrordict.get(key[, default]) 不存在,返回def; 没有def,返回Nonedict.setdefault(key[, default]) 不存在,添加kv; 没有def, v=None
修改字典
dict[key] = valuedict.update([other]) -> None 使用另一个字典的kv更新字典
删除字典
dict.pop(key[, default]) 不存在返回def;没有def,返回KeyErrordict.popitem() 返回任意item,empty dict 返回KeyError异常dict.clear()
defaultdict 处理找不到键的一个选择
collections.defaultdict([default_factory[, ...]]) default_factory 缺省是None,它提供一个初始化函数。 当key不存在时,会调用这个工厂函数来生成key对应的valuedd = defaultdict(function) dd['foo'] # key 'foo' 不存在时,dd调用function函数生成‘foo’对应的value # 注意调用,即实例化from collections import defaultdict d1 = {}d2 = defaultdict(list)for k in 'abced': for v in range(5): if k not in d1.keys(): d1[k] = [] d1[k].append(v) print(d1)for k in 'mnopq': for v in range(3): d2[k].append(v) # k不存在, 调用list生成[]; 使用append 添加vprint(d2)
OrderedDict 对顺序有要求时使用
collections.OrderedDict([items]) # 有序字典,顺序指录入顺序from collections import OrderedDictimport randomd = {'banbana': 3, 'apple': 4, 'pear': 1, 'orange': 2}print(d)keys = list(d.keys())random.shuffle(keys)print(keys)od = OrderedDict()for key in keys: od[key] = d[key]print(od)print(od.keys())from colletions import OrderedDictod = OrderedDict()od[1] = 'a'od[3] = 'c'od[2] = 'b'od[4] = 'd'od[6] = 'f'print(od)print(od.keys())有序字典可以记录元素插入的顺序,打印的时候也是按照这个顺序输出打印3.6版本的python的字典就是记录key插入的顺序
字典练习
数字统计
用户输入一个数字 打印每一位数字及其重复的次数数字重复统计 随机产生100个整数 数字的范围[-1000, 1000] 升序输出所有不同的数字及其重复的次数import randomfrom collections import OrderedDictnum_list = []od = OrderedDict()# num_list = [ random.randint(-1000, 1000) for _ in range(100)]for _ in range(100): num_list.append(random.randint(-1000, 1000))num_list.sort()# print(num_list)for k in num_list: if k not in od.keys(): od.setdefault(k, 0) od[k] += 1 else: od[k] += 1for k, v in od.items(): print('{}: {}'.format(k, v))
字符串重复统计
字符表‘abcd...z'随机挑选2个字母组成字符串,共挑选100个降序输出所有不同的字符串及重复的次数
阅读全文
0 0
- python数据结构总结:字典
- Python数据结构-字典
- Python数据结构--字典
- python数据结构之字典
- python数据结构之字典
- Python内存数据结构--字典
- python数据结构之字典
- Python数据结构中列表,字典,元组,集合的总结
- python学习总结--字典
- python字典总结
- python字典--知识点总结
- python字典总结
- python dict 字典 总结
- python学习总结---字典
- Python数据结构:序列(列表[]、元组())与映射(字典{})语法总结
- Python数据结构:序列(列表[]、元组())与映射(字典{})语法总结
- Python数据结构:序列(列表[]、元组())与映射(字典{})语法总结
- Python数据结构:序列(列表[]、元组())与映射(字典{})语法总结
- 单链表——学生成绩管理
- np.random.seed(0)的作用:作用:使得随机数据可预测
- 阿拉伯数字的读法(JAVA实现)
- [高效] NKOJ 4251 直线的交点
- 线程同步之死锁的原因和解决方法
- python数据结构总结:字典
- 项目中如何选择库和框架
- 设计模式-创建型-抽象工厂
- Rosetta Stone的第一遍学习总结
- 《Android Studio中如何建立AIDL文件&生成及找到相应的.java文件》
- 协议-传输层-ICMP
- SpringMVC基本配置
- 解不定方程
- 【luogu10月月赛】一道中档题 Factorial(数论)