全网最全Python系列教程(非常详细)---字典讲解(学Python入门必收藏)

本文详细介绍了Python中的字典概念,包括字典的定义、使用key-value方式创建、fromkeys方法、增删改查操作,以及字典视图的特点。
摘要由CSDN通过智能技术生成

🧡🧡🧡这篇是关于Python中字典的讲解,涉及到以下内容,欢迎点赞和收藏,你点赞和收藏是我更新的动力🧡🧡🧡


1、字典究竟是一个什么东西?
2、字典和之前所讲解的序列类型有什么区别?
3、字典存在的意义是什么?
4、字典中存在的操作?
5、列表还有一些其他操作,该怎么样玩转列表?


1、字典概念

在这里插入图片描述

对比之前学过的序列类型
在这里插入图片描述

无序如何体现?

dict1 = {'name': 'song', 'id': 450, 'score': 100}
print(dict1)

在这里插入图片描述


2、字典的定义

2.1、key-value方式定义

在这里插入图片描述

dict1 = {'name': 'song', 'id': 450, 'score': 100}
print(dict1, type(dict1))

2.2、fromkeys()方法

fromkeys()是静态方法,类和对象都可以调用
在这里插入图片描述

在这里插入图片描述

dict1 = dict.fromkeys(('name', 'id'), ('chris', 4502))
print(dict1, type(dict1))

在这里插入图片描述

在这里插入图片描述

dict1 = {'id': 450}  # 创建一个字典
dict2 = dict1.fromkeys(('name', 'id'), ('chris', 4502))  # 通过实例化对象创建一个字典
print(dict2, type(dict2))

2.3、定义字典注意点

  1. 字典中的key必须不能重复
    在这里插入图片描述
dict1 = {'name': 'chris', 'id': 450, 'score': 100, 'id': 200}
print(dict1)

在这里插入图片描述

  1. key必须是不可变类型
    在这里插入图片描述

可变数据类型和不可变数据类型判定依据?
假设你改变了这个值,这个对象的地址发生改变这就是不可变数据类型,对象地址没有发生改变就是可变数据类型

dict1 = {'name': 'chris', 'id': 450, 'score': 100, [1, 2, 3]: 10000}
print(dict1)

在这里插入图片描述

为什么产生上述注意点?

在这里插入图片描述

简单的存储过程
在这里插入图片描述

在这里插入图片描述

简单的查找过程
在这里插入图片描述

在这里插入图片描述


3、字典存在的意义

在这里插入图片描述

在这里插入图片描述


4、字典的增

在这里插入图片描述

dict1 = {'name': 'chris', 'id': 450, 'score': 100}

# 字典的增,就是指定key不存在时,就会新增key-value
dict1['address'] = 'China'


5、字典的删

5.1、del语句

在这里插入图片描述

dict1 = {'name': 'chris', 'id': 450, 'score': 100}

del dict1['id']
print(dict1)

del dict1
print(dict1)  # NameError: name 'dict1' is not defined

5.2、pop()

在这里插入图片描述

dict1 = {'name': 'chris', 'id': 450, 'score': 100}

# pop()方法删除指定的key以及value,并且返回对应的value
val1 = dict1.pop('score')
print(val1)

# 假设指定的key不存在,可以指定返回一个默认值,如果没有指定默认值,就会报错
val2 = dict1.pop('iddd', 2000)
print(val2)

val3 = dict1.pop('scoreeee')
print(val3)

5.3、popitem()

在这里插入图片描述

dict1 = {'name': 'chris', 'id': 450, 'score': 100}

val1 = dict1.popitem()
print(val1)

val2 = dict1.popitem()
print(val2)

5.4、clear()

在这里插入图片描述

dict1 = {'name': 'chris', 'id': 450, 'score': 100}

dict1.clear()
print(dict1)

clear()方法和del语句的区别
在这里插入图片描述


6、字典的改

在这里插入图片描述

str1 = 'hello'
str2 = 'word'

print(str1 * 10)

print(str2 * 5)

在这里插入图片描述


7、字典的查

7.1、获取单个值

在这里插入图片描述

dict1 = {'name': 'chris', 'id': 450, 'score': 100}

print(dict1['name'])

在这里插入图片描述

dict1 = {'name': 'chris', 'id': 450, 'score': 100}

# 获取key对应的value
print(dict1.get('name'))

# 如果key不存在,而且没有指定default value,则返回None
print(dict1.get('namename'))

# 如果key不存在,指定了default value,则返回设置的默认值
print(dict1.get('namename', 100000))

在这里插入图片描述

dict1 = {'name': 'chris', 'id': 450, 'score': 100}

# 获取key对应的value
print(dict1.setdefault('name'))

# 如果指定的key不存在,则设置给定的默认值,原字典中会新增这对key-value
print(dict1.setdefault('namename', 1000000))

7.2、获取所有的值

在这里插入图片描述

dict1 = {'name': 'chris', 'id': 450, 'score': 100}

print(dict1.values())

7.3、获取所有的键

在这里插入图片描述

dict1 = {'name': 'chris', 'id': 450, 'score': 100}

print(dict1.keys())

7.4、获取所有的键值对

在这里插入图片描述

dict1 = {'name': 'chris', 'id': 450, 'score': 100}

print(dict1.items())

注意:在Python2和Python3中获取key、value、key-value之间存在区别
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

str1 = 'hello'
str2 = 'word'

print(str1 * 10)

print(str2 * 5)

字典视图存在的优势?

当字典发生改变时, view objects会跟着发生改变

dict1 = {'name': 'chris', 'id': 450, 'score': 100}

print(dict1.values())
print(dict1.keys())
print(dict1.items())

# 字典视图可以直接遍历
for value in dict1.values():
    print(value)

# 字典视图可以转换为list
print(list(dict1.values()))

# 字典视图可以转换为iter
print(iter(dict1.items()))


8、字典的一些其他操作

8.1、len()

在这里插入图片描述

dict1 = {'name': 'chris', 'id': 450, 'score': 100}

# 计算key-value的个数
print(len(dict1))

8.2、判定

在这里插入图片描述

dict1 = {'name': 'chris', 'id': 450, 'score': 100}

# 判定字典的key中是否有name
print('name' in dict1)


😁😁😁觉得对自己有帮助的小伙伴可以点个赞哦😁😁😁

👉👉👉有误的地方也可以在评论区讨论哦👈👈👈


往期推荐
🚀🚀🚀全网最全Python系列教程(非常详细)—数值篇讲解(学Python入门必收藏)🚀🚀🚀

🚀🚀🚀全网最全Python系列教程(非常详细)—字符串讲解(学Python入门必收藏)🚀🚀🚀
🚀🚀🚀全网最全Python系列教程(非常详细)—列表讲解(学Python入门必收藏))🚀🚀🚀
🚀🚀🚀全网最全Python系列教程(非常详细)—元组讲解(学Python入门必收藏)))🚀🚀🚀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值