【Python】高级变量通关教程上篇(列表、元组、字典)
💁 个人主页:黄小黄的博客主页
❤️ 支持我:👍 点赞 🌷 收藏 🤘关注
🎏 格言:一步一个脚印才能承接所谓的幸运本文来自专栏:Python基础教程
欢迎点击支持订阅专栏 ❤️
写在前面
本文对 Python 中的高级变量:列表、元组、字典进行了知识总结与讲解。高级变量中的字符串由于内容比较多,博主将放在下篇:
【Python】高级变量通关教程下篇(字符串专题)
为大家讲解,感兴趣的同学可以订阅专栏,或者关注一下我,不错过第一时间的更新。好啦,闲话到此结束,开始高级变量的学习吧~~~
文章目录
- 写在前面
- 1 列表
-
- 1.1 列表说明
- 1.2 列表的常用操作
-
- 1.2.1 列表的查找与修改值
- 1.2.2 列表的增添数据
- 1.2.3 列表的删除数据
- 1.2.4 列表中的统计方法
- 1.2.5 列表的排序与反转
- 1.3 列表的迭代遍历
- 2 元组
-
- 2.1 元组说明
- 2.2 元组的常用操作
- 2.3 元组的迭代遍历
- 2.4 元组与列表的相互转化
- 3 字典
-
- 3.1 字典说明
- 3.2 字典的常用操作
-
- 3.2.1 字典的查找与增删改
- 3.2.2 字典的统计、合并与清空
- 3.3 字典的迭代遍历
- 3.4 字典与列表综合应用场景
- 写在最后
1 列表
1.1 列表说明
List
列表是Python
中使用最频繁的数据类型,在其他语言中通常为数组;- 列表用于存储一串信息,使用
[ ]
定义,数据之间使用,
分隔; - 列表的索引,也可以称之为下标,是从
0
开始的
🐇 下面我们来简单定义一个列表,存储三名学生的姓名,代码如下:
students_name = ["黄小黄", "祢豆子", "我妻善逸"]
通过图示,详细了解列表的存储结构:
1.2 列表的常用操作
1.2.1 列表的查找与修改值
🐘 列表的 查找值 只需要通过索引即可查找,如下代码,结果见注释:
students_name = ["黄小黄", "祢豆子", "我妻善逸"]students_name[0] # 黄小黄students_name[1] # 祢豆子students_name[2] # 我妻善逸
需要注意的是,列表取值不能超过索引的最大值,即列表的长度 - 1,否则会报错
🐝如果需要 查找列表的索引, 则通过 index()
方法实现:
students_name = ["黄小黄", "祢豆子", "我妻善逸"]students_name.index("黄小黄") # 0students_name.index("祢豆子") # 1students_name.index("我妻善逸") # 2
当然,如果传递的数据不在列表中,程序会报错
🐕 修改列表数据 只需要通过索引直接修改:
students_name = ["黄小黄", "祢豆子", "我妻善逸"]# 修改数据students_name[1] = "大头"print(students_name) # ['黄小黄', '大头', '我妻善逸']
1.2.2 列表的增添数据
🍑 如果希望 向列表中添加数据,则主要通过如下三个方法实现:
方法名 | 说明 |
---|---|
append(self,object) | 向列表的末尾追加数据 |
insert(self,index,object) | 在列表的指定索引位置插入数据 |
extend(self,iterable) | 将一个列表拼接到列表的末尾 |
📖 代码示例如下:
students_name = [] # 先定义一个空列表# 添加三条数据students_name.append("黄小黄")students_name.append("马小淼")students_name.append("大头")print(students_name) # ['黄小黄', '马小淼', '大头']# 插入数据students_name.insert(2, "小牛马")print(students_name) # ['黄小黄', '马小淼', '小牛马', '大头']# 拼接列表my_list = ["小鹏", "几何心凉"]students_name.extend(my_list)print(students_name) # ['黄小黄', '马小淼', '小牛马', '大头', '小鹏', '几何心凉']
🍎 结果:
1.2.3 列表的删除数据
🍑 如果希望 从列表中删除数据,则主要通过如下三个方法实现:
方法名 | 说明 |
---|---|
remove(self,object) | 删除列表中指定数据(多次出现则删除第一个,如果没有则报错) |
pop(self,index) | 在不使用参数 index 时,默认删除并返回列表末尾的数据;使用参数 index 可以指定希望删除数据的索引 |
clear(self) | 清空列表 |
📖 代码示例如下:
mylist = ["黄小黄", "祢豆子", "漩涡鸣人", "草帽路飞"]# 删除指定数据mylist.remove("黄小黄")print(mylist) # ['祢豆子', '漩涡鸣人', '草帽路飞']# 删除末尾数据mylist.pop()print(mylist) # ['祢豆子', '漩涡鸣人']# 清空mylist.clear()print(mylist) # []
🍎 结果:
同时,删除数据也可以通过 del 关键字实现,但是需要注意区别:使用 del 是从内存上删除变量,后续的代码就不能使用这个变量了
mylist = ["黄小黄", "祢豆子", "漩涡鸣人", "草帽路飞"]del mylist[1]print(mylist) # ['黄小黄', '漩涡鸣人', '草帽路飞']del mylistprint(mylist) # NameError: name 'mylist' is not defined
1.2.4 列表中的统计方法
🍑 常用的列表统计方法如下表:
方法名 | 说明 |
---|---|
len(list) | 统计列表中的元素种数 |
count(object) | 统计列表中某一数据出现的次数 |
🐭 参考代码示例:
mylist = ["黄小黄", "祢豆子", "漩涡鸣人", "草帽路飞", "黄小黄"]mylist_len = len(mylist)print("列表的长度(元素个数): %d" % mylist_len) # 5count = mylist.count("黄小黄")print("黄小黄 出现的次数: %d" % count) # 2
🍊 结果:
1.2.5 列表的排序与反转
🍑 相关方法如下表:
方法名 | 说明 |
---|---|
sort() | 升序排序 |
sort(reverse = True) | 降序排序 |
reverse() | 反转列表 |
需要注意的是,升序排序对于数字而言是从小到大;对于字符串和字符而言,是字典顺序,比如 a 比 z 小
🐯 参考示例代码:
words = ["abc", "Abc", "z", "dbff"]nums = [9, 8, 4, 2, 2, 3]# 升序排序words.sort()nums.sort()print(words) # ['Abc', 'abc', 'dbff', 'z']print(nums) # [2, 2, 3, 4, 8, 9]# 降序排序words.sort(reverse=True)nums.sort(reverse=True)print(words) # ['z', 'dbff', 'abc', 'Abc']print(nums) # [9, 8, 4, 3, 2, 2]# 反转nums.reverse()print(nums) # [2, 2, 3, 4, 8, 9]
🐔 结果:
1.3 列表的迭代遍历
🆔 遍历是指从头到尾依次从列表中获取数据,使用 for
循环就很容易实现,语法基础格式如下:
# for 循环内部使用的变量 in 列表for name in name_list:# 循环内部对列表进行的操作print(name) # 比如打印
🐱 示例代码与结果:
student_list = ["黄小黄", "马小淼", "大头", "小牛马"]# 迭代遍历for student in student_list: print(student)
2 元组
2.1 元组说明
Tuple
元组与列表类似,最大的区别是元组的 元素不能修改- 元组表示多个元素组成的序列,用于存储一串信息,数据之间使用
,
分隔; - 元组使用
( )
定义,索引从0
开始。
示例1️⃣ 创建一个空元组
tuple = ()
示例2️⃣ 创建一个元组
tuple = ("黄小黄", "路飞", "娜美")
元组只包含一个元素时,需要在元素后面加 ,
2.2 元组的常用操作
由于元组中的元素是不可变的,因此 python 提供的元组方法通常为只读,常用的有
index()
和count()
👂 示例代码与结果:
my_tuple = ("黄小黄", "马小淼", "草帽路飞", "黄小黄")# 读取索引print(my_tuple.index("马小淼")) # 1# 统计出现次数print(my_tuple.count("黄小黄")) # 2
2.3 元组的迭代遍历
🐒 与列表的遍历类似,但是在实际开发中,我们并不常常遍历元组,除非能够确认 元组中元素的数据类型。
# for 循环内部使用的变量 in 元组for name in name_touple:# 循环内部对元组进行的操作print(name) # 比如打印
🐴小结: 在 Python 中可以使用 for 循环遍历所有非数字类型的变量:列表、元组、字符串以及字典
2.4 元组与列表的相互转化
- 元组转化为列表,通过
list
函数实现 - 列表转化为元组,通过
tuple
函数实现
🐴 参考代码:
temp_tuple = ("黄小黄", "马小淼", "草帽路飞")my_list = list(temp_tuple)print(my_list)print(type(my_list))my_tuple = tuple(my_list)print(my_tuple)print(type(my_tuple))
🏠 结果:
3 字典
3.1 字典说明
- 字典使用
{}
定义,是 无序的对象集合; - 字典使用 键值对 存储数据,其间使用
,
分隔; - 键
key
是索引,值value
是数据; - 键值之间使用
:
分隔; - 键必须是唯一的,且必须为字符串、数字或元组,值可以为任何数据类型。
🐇 下面我们来简单定义一个字典,代码如下:
nezuko = {"name": "祢豆子", "age": 6, "height": 145, "phone": 123456789}
通过图示,详细了解字典的存储结构:
3.2 字典的常用操作
3.2.1 字典的查找与增删改
⭕️ 通过对列表和元组的学习,想必已经对索引取值已经增添删除数据有了一定的认识,这里直接上代码举例:
🐘 1. 查找值
字典的取值同样通过索引的方式来取值,只不过,字典的索引是key。需要注意的是,进行取值操作时,如果指定的key不存在,程序会报错!
nezuko = {"name": "祢豆子", "age": 6, "height": 145, "phone": 123456789}# 查找值,取值print(nezuko["name"])print(nezuko["age"])print(nezuko["height"])print(nezuko["phone"])
🐖 2. 增添及修改值
在 python 中增添与修改值很简单,只需要使用索引添加或修改。如果key存在,则会修改数据;如果key不存在,则会新增键值对。
nezuko = {"name": "祢豆子", "age": 6, "height": 145, "phone": 123456789}# 添加nezuko["性别"] = "女"# 修改nezuko["age"] = 3# 打印print(nezuko)
🐻 3. 删除值与字典
删除有两种方式,使用 pop() 方法指定 key 删除或者使用关键字 del 并指定 key 删除。当然,也可以通过 del 关键字删除字典。
nezuko = {"name": "祢豆子", "age": 6, "height": 145, "phone": 123456789}# 删除del nezuko["phone"]nezuko.pop("height")print(nezuko)# 删除字典del nezukoprint(nezuko)
3.2.2 字典的统计、合并与清空
🍊 涉及到的方法一览表:
方法名 | 说明 |
---|---|
len(dict) | 统计字典键值对的数量 |
update(temp_dict) | 将 update_dict 字典与原字典合并,如果被合并的字典包含已经存在的键值对,会覆盖原有的键值对 |
clear() | 清空字典中的所有元素 |
🐴 示例代码:
nezuko = {"name": "祢豆子", "age": 6, "height": 145, "phone": 123456789}# 统计键值对个数nezuko_count = len(nezuko)print("字典 nezuko 键值对个数为: %d" % nezuko_count)# 合并两个字典nezuko_new = {"性别": "女","爱好": "咬竹筒","age": 10}nezuko.update(nezuko_new)print("合并后" + str(nezuko))# 清空列表元素nezuko.clear()print("清空后: " + str(nezuko))
🍎 结果:
3.3 字典的迭代遍历
🐒 在实际开发中,字典的遍历需求并不多,因为我们无法确定字典中的每一个键值对保存的数据类型。
🆔 遍历语法:
# for 循环内部使用的 key 变量 in 字典名for k in dict:# 具体操作print("%s: %s" % (k, dict[k]))
🐱 示例代码及结果:
commodities = {"商品名称": "洗发水", "价格": "$8.99"}# 遍历for k in commodities: print("%s \t: %s" % (k, commodities[k]))
3.4 字典与列表综合应用场景
- 使用 多个键值对,描述一个物品的相关信息;
- 将 多个字典放在一个列表中,在循环体内部针对每一个字典进行相同的处理
🐈 示例代码与结果:
尝试将物品信息存储为字典,并将所有物品存储到列表中进行遍历修改
commodities_list = [ {"商品名称": "洗发水", "价格": "$8.99"}, {"商品名称": "耳机", "价格": "$78.99"}, {"商品名称": "固态硬盘", "价格": "$99.99"},]# 遍历 给所有商品价格增加100 并打印for commodity in commodities_list: # 这里使用了 lstrip 对字符串进行了首字符删除 后面会讲 先忽略 commodity["价格"] = "$" + str(float(commodity["价格"].lstrip("$")) + 100) print(commodity)
写在最后
🌟以上便是本文的全部内容啦,后续内容将会持续免费更新,如果文章对你有所帮助,麻烦动动小手点个赞 + 关注,非常感谢 ❤️ ❤️ ❤️ !
如果有问题,欢迎私信或者评论区!
共勉:“你间歇性的努力和蒙混过日子,都是对之前努力的清零。”