首页
学习
活动
专区
圈层
工具
发布
30 篇文章
1
【愚公系列】2021年12月 Python教学课程 01-全方位解读Python
2
【愚公系列】2021年12月 Python教学课程 02-变量
3
【愚公系列】2021年12月 Python教学课程 03-数据类型
4
【愚公系列】2021年12月 Python教学课程 04-字符串
5
【愚公系列】2021年12月 Python教学课程 05-列表List
6
【愚公系列】2021年12月 Python教学课程 06-元组Tuple
7
【愚公系列】2021年12月 Python教学课程 07-字典Dict
8
【愚公系列】2021年12月 Python教学课程 08-基本语法
9
【愚公系列】2021年12月 Python教学课程 09-流程控制-顺序执行
10
【愚公系列】2021年12月 Python教学课程 10-流程控制-条件判断
11
【愚公系列】2021年12月 Python教学课程 11-流程控制-循环控制
12
【愚公系列】2021年12月 Python教学课程 12-Python函数
13
【愚公系列】2021年12月 Python教学课程 13-变量作用域
14
【愚公系列】2021年12月 Python教学课程 14-递归函数
15
【愚公系列】2021年12月 Python教学课程 15-匿名函数
16
【愚公系列】2021年12月 Python教学课程 16-推导式
17
【愚公系列】2021年12月 Python教学课程 17-模块与包
18
【愚公系列】2021年12月 Python教学课程 18-异常处理
19
【愚公系列】2021年12月 Python教学课程 19-面向对象编程-面向对象定义
20
【愚公系列】2021年12月 Python教学课程 20-面向对象编程-类和对象
21
【愚公系列】2021年12月 Python教学课程 21-面向对象编程-特殊成员和魔法方法
22
【愚公系列】2021年12月 Python教学课程 22-面向对象编程-封装、继承、多态
23
【愚公系列】2021年12月 Python教学课程 23-面向对象编程-运算符重载
24
【愚公系列】2021年12月 Python教学课程 24-Python数据库编程
25
【愚公系列】2021年12月 Python教学课程 25-Python文件读写
26
【愚公系列】2021年12月 Python教学课程 26-系统编程
27
【愚公系列】2021年12月 Python教学课程 27-算法
28
【愚公系列】2021年12月 Python教学课程 28-Web开发基础
29
【愚公系列】2021年12月 Python教学课程 29-MVC设计模式
30
【愚公系列】2021年12月 Python教学课程 30-Django简介

【愚公系列】2021年12月 Python教学课程 07-字典Dict

文章目录

一、字典Dict

Python 的字典数据类型是基于 hash 散列算法实现的,采用键值对(key:value)的形式, 根据 key 的值计算 value 的地址,具有非常快的查取和插入速度。 字典是无序的,包含的元素个数不限,值的类型也可以是其它任何数据类型! 字典的 key 必须是不可变的对象,例如整数、字符串、bytes 和元组,但使用最多的还 是字符串。列表、字典、集合等就不可以作为 key。同时,同一个字典内的 key 必须是 唯一的,但值则不必。 字典可精确描述为不定长、可变、无序、散列的集合类型。 字典的每个键值对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({}) 中 ,例如: dic = {key1 : value1, key2 : value2 }

二、字典相关操作

1.创建字典

方式一: 直接创建

代码语言:javascript
复制
>>> dic1 = {'name': 'Tom', 'age': 40}

方式二: 动态创建

代码语言:javascript
复制
>>> dic2 = {} 
>>> dic2['name'] = 'Tom' 
>>> dic2['age'] = 40

方式三: 关键字创建

代码语言:javascript
复制
>>> dic3 = dict(name='Tom', age=40)

方式四: 键/值对创建

代码语言:javascript
复制
>>> dic4 = dict((['name', 'Tom'], ['age', 40])) 
>>> dic4

方式五: 通过 fromkeys 方法来创建

代码语言:javascript
复制
>>> dic5 = dict.fromkeys(['a', 'b'], 0)
>>> dic5

方式六: zip 创建字典

代码语言:javascript
复制
>>> dic6 = dict(zip(['a', 'b'], [1, 2]))
>>> dic6

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然 后返回由这些元组组成的对象。我们可以使用 list() 转换来输出列表。 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。 利用 * 号操作符,可以将元组解压为列表。

2.访问字典

字典是集合类型,不是序列类型,因此没有索引下标的概念,更没有切片的说法。字典 采用把相应的键放入方括号内获取对应值的方式取值。

代码语言:javascript
复制
dic = {'Name': 'Jack','Age': 7, 'Class': 'First'}
print ("dic['Name']: ", dic['Name'])
print ("dic['Age']: ", dic['Age'])

如果访问字典里没有的键,会抛出异常:

代码语言:javascript
复制
>>> dic = {'Name': 'Jack','Age': 7, 'Class': 'First'}
>>> dic["address"]
Traceback (most recent call last):
 File "", line 1, in <module>
 dic["address"]
KeyError: 'address'

3.增加和修改

增加就是往字典插入新的键值对,修改就是给原有的键赋予新的值。由于一个 key 只能 对应一个值,所以,多次对一个 key 赋值,后面的值会把前面的值冲掉。

代码语言:javascript
复制
>>> dic = {'Name': 'Jack','Age': 7, 'Class': 'First'}
>>> dic["address"] = "Shanghai"
>>> dic["address"] = "Beijing"
>>> dic["Age"] = 18
>>> dic
{'Name': 'Jack', 'Age': 18, 'Class': 'First', 'address': 'Beijing'}

要统计字典内键的个数,可以使用 Python 内置的 len()函数:

代码语言:javascript
复制
dic = {'Name': 'Jack','Age': 7, 'Class': 'First'}
>>> len(dic)

4.删除字典元素、清空字典和删除字典

使用 del 关键字删除字典元素或者字典本身,使用字典的 clear()方法清空字典。

代码语言:javascript
复制
>>> dic
{'Name': 'Jack', 'Age': '20', 'Class': 'First', 'sex': 'male'}
>>> del (dic['Name']) # 删除指定的键
>>> dic
{'Age': '20', 'Class': 'First', 'sex': 'male'}
>>> a = dic.pop('Class') # 弹出并返回指定的键
>>> a
'First'
>>> dic
{'Name': 'Jack', 'Age': 7}
>>> dic.clear() # 清空字典
>>> dic
{}
>>> del (dic) # 删除字典本身
>>> dic
Traceback (most recent call last):
 File "", line 1, in <module>
 dic
NameError: name 'dic' is not defined

5.字典的重要方法

下表中列出了字典的重要内置方法。其中的 get、items、keys 和 values 是核心中的核 心,必须熟练掌握!

方法

作用

clear()

删除字典内所有元素

copy()

返回一个字典的浅复制

fromkeys()

创建一个新字典,以序列 seq 中元素做字典的键

get(key)

返回指定键的值,如果值不在字典中,则返回default 值

items()

以列表返回可遍历的(键, 值) 元组对

keys()

以列表返回字典所有的键

values()

以列表返回字典所有的值

pop(key)

删除并返回指定 key 的值

popitem()

随机删除并返回字典内某个键的值

setdefault(key, default=None)

和 get()类似,但如果键不存在于字典中,将会添加键并将值设为 default

update(dict2)

把字典 dict2 的键/值对更新到 dict 里

6.遍历字典

遍历字典获得的键值对是随机无序的!以下的遍历方法必须全部熟练掌握。

代码语言:javascript
复制
dic = {'Name': 'Jack', 'Age': 7, 'Class': 'First'}
# 1 直接遍历字典获取键,根据键取值
for key in dic:
 print(key, dic[key])
# 2 利用 items 方法获取键值,速度很慢,少用!
for key,value in dic.items():
 print(key,value)
#3 利用 keys 方法获取键
for key in dic.keys():
 print(key, dic[key])
#4 利用 values 方法获取值,但无法获取对应的键。
for value in dic.values():
 print(value)
下一篇
举报
领券