前言
学无止境,无止境学。大家好,我是张大鹏,之前在抖音有5万多粉丝,不过现在不拍视频,专心写公众号了。笔者目前是高级Python工程师,之前是全栈工程师,主要擅长Golang和Python开发,对于Java,Vue,React也有一些研究。工作之余,喜欢学习和分享,希望能够通过此公众号”张大鹏520″,将自己学到的东西分享给大家,和大家一起交流,一起成长,一起进步。
今天要给大家分享的是《Python零基础入门教程06 字典和集合以及推导式》,这是一个系列的教程,从零基础到项目实战。在本教程中,我会给大家介绍Python中的字典和集合以及推导式。到目前为止,咱们学了字符串、列表、元组,加上今天学的字典、集合,将会学到Python中最常用最基础的数据结构。还会配套相关的练习,大家学完以后可以自行通过练习题巩固和加深对知识点的理解。
如果大家需要本教程的PDF电子书或者完整的源码,可以在文末找到获取方式哈。
01 字典
创建字典
字典是一种键值对结构,也是一种序列类型。字典经常用来存储存在映射关系的数据。创建字典的常用方法有:
-
创建空字典: a = {}
-
创建带数据的字典: a = {"a": 111, "b": 222}
示例代码:
# 创建空字典:`a = {}`
d = {}
print(d, type(d))
# 创建带数据的字典:`a = {"a": 111, "b": 222}`
d = {"a": 111, "b": 222}
print(d, type(d))
字典的增删改查
字典的常用增删改查方法如下:
-
增加: d[key] = value
-
删除: del d[key]
-
修改: d[key] = new_value
-
查询: value = d.get(key)
示例代码:
d = {}
# 增加:`d[key] = value`
d["name"] = "张大鹏"
d["age"] = 33
print(d)
# 删除:`del d[key]`
del d["age"]
print(d)
# 修改:`d[key] = new_value`
d["name"] = "李思思"
print(d)
# 查询:`value = d.get(key)`
print(d.get("name"))
字典的遍历
字典的常用遍历方法如下:
-
遍历key: for k in d.keys()
-
遍历value: for v in d.values()
-
遍历键值对: for k,v in d.items()
示例代码:
d = {"a": 11, "b": 22, "c": 33}
# 遍历key:`for k in d.keys()`
for k in d.keys():
print(k, d.get(k), end="t")
print()
# 遍历value:`for v in d.values()`
for v in d.values():
print(v, end="t")
print()
# 遍历键值对:`for k,v in d.items()`
for k, v in d.items():
print(k, v, end="t")
print()
02 集合
集合的定义
集合也是一种序列类型,不过集合是无序且不重复的。所以,集合通常用于作为数据去重或者存储确定不可重复的数据。常见的定义集合的方法如下:
-
定义空集合: s = set()
-
定义带数据的集合: s = {1, 2, 3}
示例代码:
# 定义空集合:`s = set()`
s = set()
print(s, type(s))
# 定义带数据的集合:`s = {1, 2, 3}`
s = {1, 2, 3}
print(s, type(s))
集合的增删改查
集合也可以做增删改查操作,常见的方法如下:
-
add:添加数据到集合 -
update:添加一个序列中的所有元素到集合 -
remove:删除集合中的元素 -
in和not in:判断元素是否在集合中
示例代码:
s = set()
# add:添加数据到集合
s.add(1)
print(s)
# update:添加一个序列中的所有元素到集合
s.update([11, 22, 33, 44])
print(s)
# remove:删除集合中的元素
s.remove(33)
print(s)
# in和not in:判断元素是否在集合中
print(33 in s)
print(33 not in s)
03 推导式
列表推导式
列表推导式用于快速生成列表,常见的列表推导式格式如下:
-
简单列表推导式: [i for i in 迭代对象]
-
带判断的列表推导式: [i**2 for i in 迭代对象 if i%2==0]
-
多个循环的列表推导式: [i*j for i in 迭代对象1 for j in 迭代对象2]
示例代码:
# 简单列表推导式:`[i for i in 迭代对象]`
arr = [i for i in range(10)]
print(arr)
# 带判断的列表推导式:`[i**2 for i in 迭代对象 if i%2==0 else 0]`
arr = [i ** 2 for i in range(10) if i % 2 == 0]
print(arr)
# 多个循环的列表推导式:`[i*j for i in 迭代对象1 for j in 迭代对象2]`
arr = [i * j for i in range(3) for j in range(3, 6)]
print(arr)
字典推导式
字典推导式和列表推导式类似,常见的字典推导式如下:
-
简单字典推导式: {i:i**2 for i in 迭代对象}
-
带判断的字典推导式: {i:i**3 for i in 迭代对象 if i%3==0}
-
多个循环的字典推导式: {i:j**3 for i in 迭代对象1 for j in 迭代对象2}
示例代码:
# 简单字典推导式:`{i:i**2 for i in 迭代对象}`
d = {i: i ** 2 for i in range(3)}
print(d)
# 带判断的字典推导式:`{i:i**3 for i in 迭代对象 if i%3==0}`
d = {i: i ** 3 for i in range(3, 10, 2) if i % 3 == 0}
print(d)
# 多个循环的字典推导式:`{i:j**3 for i in 迭代对象1 for j in 迭代对象2}`
d = {i: j ** 3 for i in range(3) for j in range(4, 7)}
print(d)
集合推导式
集合推导式和其他两种推导式类似,常见的集合推导式如下:
-
简单的集合推导式: {i for i in 迭代对象}
-
带判断的集合推导式: {i for i in 迭代对象 if i%2==0}
-
多个循环的集合推导式: {i*j for i in 迭代对象1 for j in 迭代对象2}
示例代码:
# 简单的集合推导式:`{i for i in 迭代对象}`
s = {i for i in range(3)}
print(s)
# 带判断的集合推导式:`{i for i in 迭代对象 if i%2==0}`
s = {i for i in range(3, 10) if i % 2 == 0}
print(s)
# 多个循环的集合推导式:`{i*j for i in 迭代对象1 for j in 迭代对象2}`
s = {i * j for i in range(10) for j in range(3)}
print(s)
结语
关注我不迷路,欢迎关注我的微信公众号”张大鹏520″,如果您对此文章感兴趣,欢迎点赞收藏,留言评论。
文中所有代码,只需要打赏20元,然后留言评论“已打赏”,即可获取哦。
本文的PDF电子书版,只需要打赏3元,然后留言评论“已打赏”,即可获取哦。
写文章不容易,不喜勿喷哈,如果有想要学编程,学项目,或者在工作中有项目难以单独完成需要提供帮助的同学,欢迎私信我哈。生活不易,想要利用学到的编程知识,业余赚点零花钱。
接项目:网站开发,APP开发,各种管理系统开发。
带徒弟:Python编程教学,Golang编程教学,前端编程教学。
谢谢您!!!
原文始发于微信公众号(张大鹏520):Python零基础入门教程06 字典和集合以及推导式
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/48523.html