【python图解】Python 数据结构之列表和元组
顾名思义,数据结构是能够将数据组合在一起的一种结构。
在数学中,很多情况下需要将数据进行有序排列。例如我们统计了某班 50 人的数据成绩,那么一共50 个人。例如 Alice = 99, Bob = 86 .... 无疑是非常繁琐的。这时我们可以通过数据结构整合这些数据,这可以将程序大大简化。
Python 中常用的数据结构有:
-
列表 List : 用于保存有序项集合的变量,以方括号标识。
-
元组 Tuple: 用于保存有序项集合的常量,以圆括号标识。
-
字典 Dict: 用于保存无序(键,值)项集合的变量,以花括号标识。
-
集合 Set: 用于保存无序项集合的变量,以花括号标识。
瑞士计算机科学家曾说过 "程序 = 数据结构 + 算法"。掌握 Python 中常用的数据结构是我们设计程序的一大基石。
学习 Python 中的数据结构,这将帮助你更好地存储和操作数据 。
1. 列表
1.1 列表的概念
-
定义:列表是一个有序的、可变的数据集合,可以存储任意数据类型的元素,如整数、字符串、浮点数、甚至是其他列表。
-
特点:
-
元素按插入顺序排列,有序性。
-
元素可以被修改、增加或删除(可变性)。
-
使用方括号 [] 作为表示方式,元素之间用逗号分隔。
-
创建包含元素的列表 numbers = [1, 2, 3, 4, 5]
列表支持以下操作:
- 增:通过函数 append 可以向列表内增加元素
- 删:通过关键字 del 可以删除列表内元素
- 查:通过关键字 [ ] 可以查找列表某个位置元素
- 改:通过赋值符号 = 可以修改某个位置的元素
列表的优点是:
- 快速向尾部添加元素
- 节省占用计算机内容空间
- 快速遍历所有元素
列表查找元素
通过 [ ] 关键字查找列表中某个位置的元素。
例如 l[0] 可以获取列表中首个元素,l[1] 可以获取列表中第 2 个元素。同时它还支持倒序查找,例如 l[-1] 表示倒数第一个元素(末尾的元素)。
1.2 列表的创建
# 创建空列表
empty_list =[]
# 创建包含元素的列表
numbers =[1,2,3,4,5]
# 列表可以存储不同类型的元素
mixed_list =[1,"hello",3.14,[1,2,3]]
1.3 列表的常用方法
-
增加元素:append() 和 insert()
fruits = ["apple"]
fruits.append("banana") # 在末尾添加
print(fruits) # 输出 ['apple', 'banana']
fruits.insert(1, "cherry") # 在索引 1 处插入
print(fruits) # 输出 ['apple', 'cherry', 'banana']
-
删除元素:remove()、pop() 和 del (3个方法)
fruits = ["apple","banana","cherry"]
fruits.remove("banana")# 删除指定值
print(fruits)# 输出 ['apple', 'cherry']
popped_item = fruits.pop()# 弹出最后一个元素
print(popped_item)# 输出 'cherry'
print(fruits)# 输出 ['apple']
del fruits[0]# 删除索引 0 的元素
print(fruits) # 输出 []
-
查询列表元素:通过列表切片,提取单个或者子列表通过索引访问元素:索引从 0 开始,可以为负数表示倒数位置。通过切片取出元素的子列表: [开始序列(0开始):结束序列(不包含):步长]
numbers = [1,2,3,4,5]
# 访问元素
print(numbers[0])# 输出 '1'
print(numbers[-1])# 输出 '5'
sublist = numbers[1:4]# 从索引 1 开始到索引 4 结束(不包括 4)
print(sublist)# 输出 [2, 3, 4]
# 步长切片
even_numbers = numbers[::2]
print(even_numbers) # 输出 [1, 3, 5]
-
修改列表元素 修改元素:通过索引直接赋值修改元素。
fruits = ["apple", "banana", "cherry"]
# 修改元素
fruits[1] = "orange"
print(fruits) # 输出 ['apple', 'orange', 'cherry']
1.4其他方法:len(), sort(), reverse()
numbers = [5, 2, 3, 1, 4]
print(len(numbers)) # 输出列表长度 5
numbers.sort() # 升序排序
print(numbers) # 输出 [1, 2, 3, 4, 5]
numbers.reverse() # 反转列表
print(numbers) # 输出 [5, 4, 3, 2, 1]
1.5 列表的遍历
# 使用 for 循环遍历列表
fruits = ["apple", "orange", "cherry"]
for fruit in fruits:
print(fruit)
# 使用索引遍历
for i in range(len(fruits)):
print(f"Index {i}: {fruits[i]}")
1.6 列表的应用场景和总结
应用场景:适用于需要存储和处理一组有序、可变数据的情况。总结:列表是 Python 最常用的数据结构之一,灵活性强,适合处理动态变化的数据。
元组(Tuple)
2.1 元组的概念
-
定义:元组是一个有序的、不可变的数据集合,元素的值不能被修改。
-
特点:
-
元素按插入顺序排列(有序性)。
-
元素不可被修改(不可变性)。
-
使用圆括号 () 作为表示方式,元素之间用逗号分隔。
-
2.2 元组的创建
创建单元素元组需要在元素后添加逗号
# 创建空元组
empty_tuple = ()
# 创建包含元素的元组
numbers = (1, 2, 3)
# 创建单元素元组需要在元素后添加逗号
single_element = (4,)
注意: 如果你省略逗号 (4)
,则 Python 会将其认为是一个普通整数,而不是一个元组。
2.3 访问元组元素
与列表类似,可以通过索引访问元组元素。
# 访问元组元素
my_tuple =(10,20,30,40,50)
print(my_tuple[0])# 输出: 10
print(my_tuple[2])# 输出: 30
# 使用负索引
print(my_tuple[-1])# 输出: 50
# 元组的切片
print(my_tuple[1:4])# 输出: (20, 30, 40)
print(my_tuple[:3]) # 输出: (10, 20, 30)
2.4 元组的常用方法
由于元组是不可变的,许多列表的修改方法(如 append()
、remove()
等)在元组中无法使用。以下是元组常用的一些方法和操作。
-
统计元素出现次数
count()
返回元组中某个元素出现的次数。
my_tuple = (1, 2, 2, 3, 4, 4, 4, 5)
print(my_tuple.count(4)) # 输出: 3
-
取出某个元素索引
index()
返回元素在元组中第一次出现的索引。
my_tuple = ('a', 'b', 'c', 'a')
print(my_tuple.index('a')) # 输出: 0
2.5 元组的增删改操作说明
元组是不可变的,这意味着无法直接增、删、改元素。然而,这里通过一些间接的方法实现类似操作,比如重新创建元组或转换为列表来进行操作。
-
增加元素(间接实现)
我们可以通过将元组转换为列表,然后修改列表并再转换回元组来实现增加元素的效果。
my_tuple = (1, 2, 3)
temp_list = list(my_tuple) # 将元组转换为列表
temp_list.append(4) # 增加元素
my_tuple = tuple(temp_list) # 重新转换为元组
print(my_tuple) # 输出: (1, 2, 3, 4)
-
删除元素(间接实现)
删除元素同样需要先转换为列表。
my_tuple = (10, 20, 30)
temp_list = list(my_tuple) # 将元组转换为列表
temp_list.remove(20) # 删除元素
my_tuple = tuple(temp_list) # 重新转换为元组
print(my_tuple) # 输出: (10, 30)
-
修改元素(间接实现)
修改元素的逻辑类似,先转换为列表,再进行修改。
my_tuple = (100, 200, 300)
temp_list = list(my_tuple) # 将元组转换为列表
temp_list[1] = 250 # 修改元素
my_tuple = tuple(temp_list) # 重新转换为元组
print(my_tuple) # 输出: (100, 250, 300)
2.6 遍历元组
可以使用 for
循环遍历元组中的所有元素。
my_tuple = ('apple', 'banana', 'cherry')
for fruit in my_tuple:
print(fruit)
2.7 元组的应用场景和总结
应用场景:元组常用于存储固定数据或作为函数的返回值。由于不可变性,它们比列表更安全。总结:元组适用于存储不可更改的数据集合,具有更快的访问速度和内存优化。
3. 元组与列表的比较
特性 | 列表 | 元组 |
可变性 | 可变 | 不可变 |
适用场景 | 数据可能需要增删改 | 数据需要保持稳定或作为常量 |
操作方法 | 多种修改和删除方法 | 限制较多,主要是查询和解包 |
内存使用 | 相对更高 | 通常更低 |
-
可变性:列表是可变的,可以修改、增加、删除元素;元组是不可变的,创建后不能修改。
-
表示方式:列表使用 [],元组使用 ()。
-
性能:由于元组的不可变性,它们比列表占用更少的内存,访问速度更快。
-
应用场景:列表适合需要频繁修改的数据集,元组适合存储固定数据。
以上是对 列表 和 元组 的详细描述与整理,希望能够帮助你更好地理解和运用这两种数据结构。
希望这份简洁的教程对你理解Python中的列表和元组使用有所帮助!如果你有任何问题,或者希望了解更深入的内容,关注公众号《LKIDTI数据》的《python图解》!或联系我
标签:tuple,python,元素,列表,Python,print,元组,my From: https://blog.csdn.net/weixin_45014634/article/details/143932288