> 文档中心 > 【Python】高级变量通关教程上篇(列表、元组、字典)

【Python】高级变量通关教程上篇(列表、元组、字典)


💁 个人主页:黄小黄的博客主页
❤️ 支持我:👍 点赞 🌷 收藏 🤘关注
🎏 格言:一步一个脚印才能承接所谓的幸运

本文来自专栏: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 = ["黄小黄", "祢豆子", "我妻善逸"]

通过图示,详细了解列表的存储结构:
【Python】高级变量通关教程上篇(列表、元组、字典)

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)  # ['黄小黄', '马小淼', '小牛马', '大头', '小鹏', '几何心凉']

🍎 结果:
【Python】高级变量通关教程上篇(列表、元组、字典)

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)  # []

🍎 结果:
【Python】高级变量通关教程上篇(列表、元组、字典)

同时,删除数据也可以通过 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

🍊 结果:
【Python】高级变量通关教程上篇(列表、元组、字典)

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]

🐔 结果:【Python】高级变量通关教程上篇(列表、元组、字典)

1.3 列表的迭代遍历

🆔 遍历是指从头到尾依次从列表中获取数据,使用 for 循环就很容易实现,语法基础格式如下:

# for 循环内部使用的变量 in 列表for name in name_list:# 循环内部对列表进行的操作print(name)  # 比如打印

🐱 示例代码与结果:

student_list = ["黄小黄", "马小淼", "大头", "小牛马"]# 迭代遍历for student in student_list:    print(student)

【Python】高级变量通关教程上篇(列表、元组、字典)


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))

🏠 结果:
【Python】高级变量通关教程上篇(列表、元组、字典)


3 字典

3.1 字典说明

  • 字典使用 {} 定义,是 无序的对象集合
  • 字典使用 键值对 存储数据,其间使用 , 分隔;
  • key 是索引,值 value 是数据;
  • 键值之间使用 : 分隔;
  • 键必须是唯一的,且必须为字符串、数字或元组,值可以为任何数据类型。

🐇 下面我们来简单定义一个字典,代码如下:

nezuko = {"name": "祢豆子",   "age": 6,   "height": 145,   "phone": 123456789}

通过图示,详细了解字典的存储结构:
【Python】高级变量通关教程上篇(列表、元组、字典)

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"])

【Python】高级变量通关教程上篇(列表、元组、字典)

🐖 2. 增添及修改值
在 python 中增添与修改值很简单,只需要使用索引添加或修改。如果key存在,则会修改数据;如果key不存在,则会新增键值对。

nezuko = {"name": "祢豆子",   "age": 6,   "height": 145,   "phone": 123456789}# 添加nezuko["性别"] = "女"# 修改nezuko["age"] = 3# 打印print(nezuko)

【Python】高级变量通关教程上篇(列表、元组、字典)

🐻 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)

【Python】高级变量通关教程上篇(列表、元组、字典)

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))

🍎 结果:
【Python】高级变量通关教程上篇(列表、元组、字典)

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]))

【Python】高级变量通关教程上篇(列表、元组、字典)

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)

【Python】高级变量通关教程上篇(列表、元组、字典)


写在最后

🌟以上便是本文的全部内容啦,后续内容将会持续免费更新,如果文章对你有所帮助,麻烦动动小手点个赞 + 关注,非常感谢 ❤️ ❤️ ❤️ !
如果有问题,欢迎私信或者评论区!
在这里插入图片描述
共勉:“你间歇性的努力和蒙混过日子,都是对之前努力的清零。”
在这里插入图片描述