Dictionary(字典)
Dictionary(字典)
前言
本章节将介绍字典的特点和常用函数。
一、什么是字典
字典是一个无序、可变和有索引的集合。在 Python 中,字典用花括号编写,拥有键和值。
字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割
字典的值可以是任意值。
二、字典的创建、访问、修改
1.字典的创建
创建空字典:
d={}
d=dict()
d={}
d=dict()
print(d)
两种方法都额可以创建空字典。
创建有键值对的字典。
d = {key1 : value1, key2 : value2, key3 : value3 }
d = {'a' : 1, 'b' : 2, 'c': 3 }
dict[key1]访问字典的值
d = {'a' : 1, 'b' : 2, 'c': 3 }
print(d['a'])
# 1
字典的遍历
对字典的遍历,实际上是对字典键的遍历
d = {'a' : 1, 'b' : 2, 'c': 3 }
for i in d:
# 等同于 for i in d.keys():print(i)# a# b# c
三、字典常用函数
1.dict.clear()
移除字典里所有 items 。不接受任何参数,返回值为 None 。
d = {'a' : 1, 'b' : 2, 'c': 3 }
d.clear()
print(d)
# {}
2.dict.copy()
浅拷贝,区别于深拷贝,对拷贝的字典修改不改变原字典。
d = {'a' : 1, 'b' : 2, 'c': 3 }
print(id(d))
# 2463175235008
d_n=d.copy()
print(d_n)
# {'a': 1, 'b': 2, 'c': 3}
print(id(d_n))
# 2463175235264
print('-'*50)
d_n['a']=2
print(d)
# {'a': 1, 'b': 2, 'c': 3}
print(d_n)
# {'a': 2, 'b': 2, 'c': 3}
3.dict.get(‘key’[, ])
通过键名访问对应的值。与常用的访问方法的区别是:若字典里没有所访问的键,则程序会报错,使得程序运行不下去;get方法则会返回 None。还可以自己定义默认值,替换 None 。
info = {'name':'班长', 'id':100, 'sex':'f', 'address':'北京'}
age = info.get('age')
print(age)
# None
age=info.get('age',18)
print(age)
# 18
4.dict.items()
将字典所有的键值对以 dict_items 的类型返回,可以转换成列表,元组等。列表中的每一项都表示为 (键,值) 的形式。由于字典是无序的,故返回时并没有遵循特定的次序。不接受任何参数。
d = {'a' : 1, 'b' : 2, 'c': 3 }
t=d.items()
print(t)
# dict_items([('a', 1), ('b', 2), ('c', 3)])
5.dict.keys()
将字典里的所有键以 dict_keys 的类型返回。可以转换成列表,元组等。不接受任何的参数。
d = {'a' : 1, 'b' : 2, 'c': 3 }print(d.keys())
# dict_keys(['a', 'b', 'c'])
6.dict.pop(key[,d])
删除指定键和其对应的值,并且返回指定键对应的值。若指定键不存在,一种情况程序会报错,另一种情况可以指定一个值作为返回值。
d = {'a' : 1, 'b' : 2, 'c': 3 }
d.pop('a')
print(d)
# {'b': 2, 'c': 3}
7.dict.popitem()
与列表的 pop 方法类似,但与之不同的是,由于字典是无序的,故是随机以(键,值)的形式抛出,并且返回(键,值)。不接受任何参数。
d = {'a' : 1, 'b' : 2, 'c': 3 }
d.popitem()
print(d)
# {'a': 1, 'b': 2}
8.dict.setdefault(key[,value])
与get方法类似。不同的是若字典里没有所访问的键,不仅会返回 None ,同时会在字典创建一个新的键值对,值默认为 None ,当然也可以设定默认值。
d = {'a' : 1, 'b' : 2, 'c': 3 }
d.setdefault('d')
print(d)
# {'a': 1, 'b': 2, 'c': 3, 'd': None}
d1 = {'a' : 1, 'b' : 2, 'c': 3 }
d1.setdefault('e',4)
print(d1)
# {'a': 1, 'b': 2, 'c': 3, 'e': 4}
9.dict1.update(dict2)
利用一个字典项更新另一个字典。将一个字典里的项添加到另一个字典里,若两个字典里有相同的键,则更新其键对应的值。
注意:更新后dict1和dict2完全相同
d = {'a' : 1, 'b' : 2, 'c': 3 }
d1 = {'a' : 1, 'b' : 2, 'c': 3 ,'e':5,'d':4}
d.update(d1)
print(d)
# {'a': 1, 'b': 2, 'c': 3, 'e': 5, 'd': 4}
print(d1)
# {'a': 1, 'b': 2, 'c': 3, 'e': 5, 'd': 4}
10.dict.values()
将字典里的所有值以 dict_values 的类型返回,可以转换成列表,元组等。不接受任何参数,用法和keys一样。
d = {'a' : 1, 'b' : 2, 'c': 3 }
t=d.values()
print(t)
# dict_values([1, 2, 3])
总结
字典是python中常用的数据类型,在存储需要一一对应的数据时候非常有用。
在学习python中必须掌握。
Dictionary(字典)相关推荐
- List数组,string数组,Dictionary字典三种contain方法的查询速度
在生成随机不重复数时要判断生成的数是否已生成过,这时就要和原来生成的数进行比较是否有重复,有以下三种方法 1. list数组采用contains()方法 2.string数组采用contains()方 ...
- C#中的Dictionary字典类介绍
关键字:C# Dictionary 字典 作者:txw1958 原文:http://www.cnblogs.com/txw1958/archive/2012/11/07/csharp-diction ...
- swift_005(Swift的Dictionary 字典)
1.Dictionary (可变不可变不区分了)字典 <Swift开发指南> // Swift 字典的key没有类型限制可以是整型或字符串,但必须是唯一的. var someDict:[ ...
- boost::contract模块实现dictionary字典的测试程序
boost::contract模块实现dictionary字典的测试程序 实现功能 C++实现代码 实现功能 boost::contract模块实现dictionary字典的测试程序 C++实现代码 ...
- 关于Dictionary字典和List列表
命名空间System.Collections.Generic中有两个非常重要,而且常用的泛型集合类,它们分别是Dictionary<TKey,TValue>字典和List<T> ...
- C#中的Dictionary字典类介绍(转载)
C#中的Dictionary字典类介绍 关键字:C# Dictionary 字典 作者:txw1958 原文:http://www.cnblogs.com/txw1958/archive/2012/ ...
- (转)C#中的Dictionary字典类介绍
关键字:C# Dictionary 字典 作者:txw1958 原文:http://www.cnblogs.com/txw1958/archive/2012/11/07/csharp-diction ...
- 你能熟练使用Dictionary字典和List列表吗?
命名空间System.Collections.Generic中有两个非常重要,而且常用的泛型集合类,它们分别是Dictionary<TKey,TValue>字典和List<T> ...
- 英文单词缩写----DXNRY – Dictionary 字典
由于英文的字母太多,不方便的时候发短信很慢,所以外国人很多都在短信上输入 缩写 ,这样就节省了很多时间.花了好久才把这些 缩写 给整理出来,唯一在这里需要说明的是,不是所有的人都明白这些 缩写 是什么 ...
- 【Python】数据类型 Number数字、String字符串、List列表、Tuple元组、Set集合、Dictionary字典
Python数据类型 2021/6/3 周四 学习内容: Python数据类型.Number(数字).String(字符串).List(列表).Tuple(元组).Set(集合).Dictionary ...
最新文章
- python八大排序算法 间书_python八大排序算法
- Photoshop剪切板故障修复
- linux名词解释目录文件,linux的常识及术语解释
- Python地信专题 | 基于geopandas的空间数据分析-文件IO篇
- CSS3移动应用程序企业网站模板
- 轻量云腾讯云服务器如何退款,腾讯云服务器等产品可以退款多少次?
- 前后台字符串进行交互
- sc7cb27180 士兰微_供应 SILAN/士兰微 SC7A30E SC7A30 LGA10-3A 加速度计/三轴磁传感器
- 浅析:18个影响网站流量下降的原因!
- linux下c语言编程实例
- 虫师带你入门Chrome Headless,从此爬虫0门槛!
- The server time zone value 'XXXXXXXXX' is unrecognized or represents more tha
- Android.mk 包含问题带来的so.toc needed by 错误
- 小程序实现商品详情页的tap标签与页面滚动联动效果
- 带分页存储管理系统中计算机应用自考,全国2012年4月高等教育自学考试计算机应用技术试题...
- bilibili杨宙:效能之上,高效交付
- MySQL limit 1,1的含义
- 在虚拟机上使用SoftRoCE部署SPDK NVMe-oF
- STM32 F7的MAC层过滤使用+实例代码
- ES2019新增功能
热门文章
- 论颈椎病与架构师的关系
- 乐字节炫酷HTML 与 CSS
- ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
- ST电机库v5.4.4源代码分析(7): SpeednPosFdbk_Handle_t在几个结构体中的关系
- 苹果电脑macos Ventura 13.0(22A380)dmg原版引导版镜像下载
- 计算机应用中dss是,基于数据仓库的决策支持系统(DSS)-计算机应用专业论文.docx...
- 2种前端实现图片加水印的方式
- 5.1 OpenStack
- 积极主动 个人愿景的原则_IT专家的愿景:您个人需要了解的内容
- 实现多数据源混合计算的方案之一