Python中的dict字典
时间:2021-07-14
本文章向大家介绍Python中的dict字典,主要包括Python中的dict字典使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
字典dict
介绍
- key-value键值对的数据集合
- 是可变的、无序的、key具有唯一性
字典创建
- d = dict()
- d = {}
- Dict(**kwargs) 使用name=value初始化一个字典
字典访问
- d[key]
- 返回key对应的value
- key不存在抛出keyError异常
- get(key[, default])
- 返回key对应的value
- key不存在返回默认值,如果没有default返回None
- get方法不会抛异常
- setdefault(key[, default])
- 返回key对应的value
- key不存在,则添加kv对,value为default值
字典增加和修改
- d[key] = value
- 将key对应的值修改为value
- key不存在添加新的键值对
- update([other]) —> None
- 使用另一个字典的键值对更新本字典
- key不存在,就添加
- key存在,覆盖已存在的key对应的value
- 原处修改
字典删除
- pop(key[, default])
- key存在,移除,并返回它的value
- key不存在,返回给定的default
- default未设置,key不存在则抛出keyError
- popitem()
- 移除并返回一个任意的键值对
- 字典为空,抛出keyError
- clear()
- 清空字典
字典删除
- del语句
- del d['c']
- del本质上删除的是一个对象的引用
字典遍历
-
for … in dict
-
遍历key
for k in d1: print(k) for k in d.keys(): print(k)
-
遍历value
for v in d.values(): print(v) for v in d: print(d.get(v))
-
遍历键值对
-
for item in d.items(): print(item) # 返回值为元组 for k,v in d.items() # k,v 可使用结构方式 print(k,v) # 返回k或者v
-
总结
- python3中,keys/values/items方法返回一个可迭代对象,不会将结果保存在内存中
- python2中,上面的方法会返回一个新的列表,占据新的内存,所以python2中建议使用iterkeys、itervalues,会返回一个迭代器
-
字典的key
- key的要求必须为可hash
缺省字典defaultdict
-
Collections.defaultdict([default_factory[,...]])
- 第一个参数是default_factory,缺省是None,它提供了一个初始化函数,当key不存在,这个工厂函数来生成key对应的value
from collections import defaultdict d1 = {} d2 = defaultdict(list) # 创建缺省字典,如果key不存在,则生成k对应的空列表 for k in "abcde": 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是否存在,如果不存在则创建键值对,并添加v print(d2)
顺序字典orderedDict
-
collections.OrderedDict([items])
- 有序字典可以记录元素插入的顺序,打印的时候也是按照这个顺序输出。
- key并不是按照加入的顺序排列,可使用OrderedDict来顺序排列
# 普通字典 >>> d = {} >>> d['apple'] = 3 >>> d['orange'] = 4 >>> d['pear'] = 1 >>> d['banabna'] = 2 >>> d {'orange': 4, 'pear': 1, 'apple': 3, 'banabna': 2} # 有序字典 >>> from collections import OrderedDict >>> od = OrderedDict() >>> od['apple'] = 3 >>> od['orange'] = 4 >>> od['pear'] = 1 >>> od['banabna'] = 2 >>> od OrderedDict([('apple', 3), ('orange', 4), ('pear', 1), ('banabna', 2)])
原文地址:https://www.cnblogs.com/larry-yu/p/15009879.html
- 卷积神经网络中PET/CT图像的纹理特征提取
- 深入剖析Spring(四)——AOP
- Java并发编程的艺术(十二)——线程安全
- 用 LSTM 做时间序列预测的一个小例子
- Java并发编程的艺术(十一)——线程池(2)
- Java并发编程的艺术(十)——线程池(1)
- Tensorflow on Spark爬坑指南
- Boost asio 官方教程
- 0基础教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)
- 柴毛毛大话设计模式——开发常用的设计模式梳理
- Redis源码分析(四)——Redis数据结构-整数集合
- Redis源码分析(三)——Redis数据结构-字典
- Redis源码分析(二)——Redis数据结构-链表
- C++实现神经网络之一 | Net类的设计和神经网络的初始化
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux Socket 编程简介和实现
- Linux (Ubuntu 18.04) 下安装vim编辑器的方法
- 把windows下的字体安装到Linux系统下的方法介绍
- Ubuntu 7.10修改软件源的方法
- Linux 僵尸进程产生原因及解决方法
- Ubuntu17.04配置更换国内源的方法
- Centos7硬盘挂载方法
- linux sort多字段排序实例解析
- Linux中Centos7搭建Hadoop服务步骤
- Centos7实现磁盘限额设置方法
- 在CentOS中部署多节点Citus集群的详细步骤
- 建立自己的npm镜像服务器
- Hugo搭建博客(一)— 基本设置
- Canvas系列(1):直线图形
- 《进化:从孤胆极客到高效团队》读书笔记