字典 dictionary
字典(dictionary)是一种通过键引用值的数据结构,这种结构称为映射(mapping),也是Python中唯一内建的映射类型
标准格式: dict = {key1:val1,key2:val2,key3:val3}
- 字典中的元素必须以项(键值对)的形式出现 (键key : 值value)
- 逻辑上讲,键不能重复,但值可以
- 键不可变,不可修改;值可变,可以是任何元素
- 字典指定值并没有特殊顺序
创建 & 使用字典
dict函数
可以使用dict函数将其他映射(如其他字典)或键值对建立字典
student = [('name','小智'),('number','1001')]
detail = dict(student)
print(detail)
>>>{'name': '小智', 'number': '1001'}
print('学生姓名:',detail['name'])
>>>学生姓名: 小智
或通过dict关键字创建字典
detail = dict(name = '小智',number = '1001')
print(detail)
>>>{'name': '小智', 'number': '1001'}
字典的基本操作
- 修改增添 | dict[key]
letter = {'a':1,'b':2,'c':3,'d':4}
letter['a'] = 6
print(letter)
>>>{'a': 6, 'b': 2, 'c': 3, 'd': 4}
>letter['e'] = 5
print(letter)
>>>{'a': 6, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
通过一个类似给键(key)赋值的方式修改字典
当key存在于字典内时:修改对应值;当key不在字典内时,添加新的键并赋值
- 删除 | del dict[key]
letter = {'a':1,'b':2,'c':3,'d':4}
del letter['c']
print(letter)
>>>{'a': 1, 'b': 2, 'd': 4}
如果在字典后不添加[key],则直接删除整个字典
- 字典键的特性
不允许同一个键出现两次,如果同一个键被赋值两次,后面的赋值会被记住;
键不可变,可用数字,字符串或元组充当
- len()函数 | len(dict)
当此函数用于字典时,用于统计整个字典元素的个数(即键的个数)
字典格式化字符串
字典的格式化方式是在每个转换说明符(%)后加上圆括号()括起来的键,再跟上其他元素说明;
用这种方式使用字典时,只要给出的键都能在字典中找到,就可以获得任意数量的转换说明符
letter = {'a':1,'b':2,'c':3,'d':4}
print('the letter a is %(a)s , c is &(c)s here' % letter)
>>>the letter a is 1 , c is 3 here
字典与列表的区别
dict可以用在很多需要高速查找的地方,需要牢记:键必须是不可变对象
dict的特点:
- 查找和插入的速度都极快,不会随key的增加而变慢;
- 需要占用大量内存
list的特点:
- 查找和插入时间随元素增加而增加
- 占用空间小
字典的方法
clear()
dict.clear()
用于删除字典内的所有项
letter = {'a':1,'b':2,'c':3,'d':4}
print(letter.clear())
>>>None
copy()
dict.copy()
用于返回一个具有相同键值对的新字典,此方法是浅复制(shallow copy),因为值本身是相同的,而不是副本;
fromkeys()
dict.fromkeys(seq[,value])
用于创建一个新字典,dict代表指定字典;seq代表字典键列表;value(可选参数)代表键对应的值;
此方法中dict为必写项
a = '1234'
print(dict.fromkeys(a,0)) # 生成一个以变量a的值为键集合的字典,并赋值‘0’
>>>{'1': 0, '2': 0, '3': 0, '4': 0}
a = ['1','2','3','4']
print(dict.fromkeys(a,0))
>>>{'1': 0, '2': 0, '3': 0, '4': 0}
a = [1,2,3,4]
print(dict.fromkeys(a,0))
>>>{1: 0, 2: 0, 3: 0, 4: 0}
a = [1234]
print(dict.fromkeys(a,0))
>>>{1234: 0}
get() & setdefault()
- dict.get(key,default= None)
get()方法返回指定键的值,如果键不在字典中,则返回默认值(None),不改变原字典 - dict.setdefault(key,default=None)
setdefault()方法与get()类似,也是根据指定键获取对应的值;
不同的是:如果键不在字典中,就在原字典中创建这个键,并赋值默认值(None)
a = {1:0,2:0,3:0,4:0}
print(a.get(1)) # 寻找键1 对应的值,返回值为默认
>>>0
print(a.get(5)) # 寻找键5 对应的值,返回值为默认
>>>None
print(a.get(5,9)) # 寻找键5 对应的值,并设定返回的默认值为 9
>>>9
print(a) # get()不会改变原字典
>>>{1: 0, 2: 0, 3: 0, 4: 0}
print(a.setdefault(1)) # 寻找键1 对应的值,如果键在字典内,返回对应的值;若键不在字典内,创建键 1,赋值None
>>>0
print(a.setdefault(5)) # 寻找键5 对应的值,如果键在字典内,返回对应的值;若键不在字典内,创建键 5,赋值None
>>>None
print(a) # setdefault()改变原字典,添加了新的项 5:None
>>>{1: 0, 2: 0, 3: 0, 4: 0, 5: None}
print(a.setdefault(5,9)) # 寻找键5 对应的值,如果键在字典内,返回对应的值;若键不在字典内,创建键 5,赋值9
>>>None # 因为之前已经添加了新的项 5:None,所以键5可以被找到,值为None
print(a) #
>>>{1: 0, 2: 0, 3: 0, 4: 0, 5: None}
update()
dict.update(dict2)
用于把字典dict2的项更新添加到dict里( 类似于列表方法中的 list.extend(esq) )
a = {1:0,2:0,3:0,4:0}
b = {'1':'u','2':'i'}
a.update(b)
print(a)
>>>{1: 0, 2: 0, 3: 0, 4: 0, '1': 'u', '2': 'i'}
keys() & values() & items()
- dict.keys()
以列表的形式返回字典dict所有的键 - dict.values()
以列表的形式返回字典dict所有的值,与keys()不同的是,返回的列表可以包含重复的元素 - dict.items()
以元组数组的形式遍历字典dict所有的项
a = {1:0,2:0,3:0,4:0}
b = {'1':'u','2':'i'}
a.update(b)
print(a.keys())
>>>dict_keys([1, 2, 3, 4, '1', '2'])
print(a.values())
>>>dict_values([0, 0, 0, 0, 'u', 'i'])
print(a.items())
>>>dict_items([(1, 0), (2, 0), (3, 0), (4, 0), ('1', 'u'), ('2', 'i')])
字典 dictionary相关推荐
- Python 字典(Dictionary) get()方法
Python 字典(Dictionary) get()方法 描述 Python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 get()方法语法: ...
- Python 字典(Dictionary)
Python 字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在 ...
- python 字典代码_Python 字典(Dictionary)
Python 字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包 ...
- TypeScript 使用 字典 Dictionary
TypeScript 没有直接的 Map 和 Dictionary 类型.不过我们可以使用索引类型模拟它们. // key 为 string,value 为 number; const dic: { ...
- C#字典Dictionary排序(顺序、倒序)
这里是针对.NET版本过低的排序方式,没怎么用过,记录一下: 一.创建字典Dictionary 对象 假如 Dictionary 中保存的是一个网站页面流量,key 是网页名称,值value对应的是网 ...
- 带你学python基础:元祖tuple和字典dictionary
一.什么是元祖 如果你学过列表 List 的话,那么,你是否会觉得元祖和列表是不是特别的相似呢? 确实,是的.但是,他们之间也是有一些区别的. 而不同之处在于元祖的元素不能被修改,而列表的元素可以被修 ...
- python编程字典100例_python中字典(Dictionary)用法实例详解
本文实例讲述了python中字典(Dictionary)用法.分享给大家供大家参考.具体分析如下: 字典(Dictionary)是一种映射结构的数据类型,由无序的"键-值对"组成. ...
- python 复制dict_超全的Python 字典(Dictionary)介绍
字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示: 键一 ...
- python 字典定义日志用法_python中字典(Dictionary)用法实例详解
本文实例讲述了python中字典(Dictionary)用法.分享给大家供大家参考.具体分析如下: 字典(Dictionary)是一种映射结构的数据类型,由无序的"键-值对"组成. ...
- python dictionary_Python 字典(Dictionary)
Python 字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在 ...
最新文章
- Schnorr签名与比特币隐私的必然性
- Interesting Array
- python实现列表去重_python实现七种列表去重方法
- 关于正则表达式匹配任意字符
- 通过mod_limitipconn模块来限制apache的并发连接数
- 开启服务_Nike Dunk 开启定制服务
- C++ Vector中size()和capacity()区别
- exchange 2010 允许 relay设定
- 小甲鱼老师目前所有视频教程下载地址(mark下来慢慢看系列)
- smith圆图重要性_smith圆图的理解
- DSP eCAP脉冲捕获实验
- HTML5 教程(四) - 内联元素
- 反汇编工具ollydbg ida
- 服务器上网站文件无法删除不了怎么办啊,Windows服务器上文件夹删不掉怎么办...
- 支付宝网页端支付接口实现案例流程
- android 手机存储大小设置,如何让手机内存变大?内存不足解决方法【详解】
- 点电荷分布matlab仿真,利用Matlab模拟点电荷的电场分布..doc
- 简记_插件电阻功率选型及使用注意事项
- 排序算法-归并排序详细图解
- 插装式比例插装阀比例节流阀比例顺序阀放大器
热门文章
- 电子科技大学830数字图像处理补充题目
- 数据库连接的7个步骤
- 如何禁用自动创建复制拓扑知识一致性检查器(MSKB)
- C++中endl、“\n”和‘\n’的区别
- STM32CubeMX实现串口中断通信
- 《Dreamweaver CS6 完全自学教程》笔记 第六章:使用表格进行网页布局
- 59十字链表,邻接多重表,边集数组,佛洛依德的冰山理论
- 2021_6_20杂文
- 《Adobe After Effects CS4经典教程》——1.10 控制用户界面的亮度
- Squirrel State Machine