Python 数据结构:列表、元组、字典和集合
在 Python 中,数据结构用于组织和存储数据。了解并掌握这些数据结构是编程的基础。本篇文章介绍 列表 (List)、元组 (Tuple)、字典 (Dict) 和 集合 (Set),以及常用的方法和示例。
| 下面分为两大部分、1 基础操作、2 对集合遍历和使用
一、Python 数据结构基础
1. 列表 (List)
列表是一个有序且可变的数据集合,可以存储不同类型的元素。
创建和访问列表
# 创建列表
list = ["苹果", "玉米", "水蜜桃", "南瓜", "葡萄"]
# 访问列表元素
print(list[0]) # 输出第一个元素 苹果
print(list[-1]) # 输出倒数第一个元素 葡萄
print(list[-2]) # 输出倒数第二个元素 南瓜
列表切片 (Slicing)
# 获取索引1~2位置的元素(不包括索引3)的元素
print(list[1:3]) # ['玉米', '水蜜桃']
# 获取索引1位置开始的全部元素
print(list[1:]) # ['玉米', '水蜜桃', '南瓜', '葡萄']
修改列表
list[0] = '鸭梨'
print(list) # 输出: ['鸭梨', '玉米', '水蜜桃', '南瓜', '葡萄']
常用方法
# 添加元素
list.append('橘子')
# 插入元素到指定位置
list.insert(1, '芒果')
# 删除元素
list.remove('玉米')
# 反转列表
list.reverse()
# 排序列表
list.sort()
# 玉米是否在集合中, 返回True,False
print("玉米" in list)
# 不在list集合中时返回True
print("玉米" not in list)
2. 元组 (Tuple)
元组和列表类似,但它是不可变的,也就是说一旦创建后不能修改元素。
创建和访问元组
colors = ('red', 'green', 'blue')
# 访问元素
print(colors[1]) # 输出: green
注意:元组不可修改
修改时会发生异常: TypeError: ‘tuple’ object does not support item assignment
# colors[0] = 'yellow' # 会报错,因为元组不可变
单个元素的元组
single = (42,) # 注意要加逗号
常用方法
print(colors.count('green')) # 统计某元素出现的次数
print(colors.index('blue')) # 获取元素的索引
省略方式创建元组
colors = 'red', 'green', 'blue'
colors = 'red',
元组合并
A = (1,2,3)
B = (4,5,6)
print(A + B) # 输出: (1,2,3,4,5,6)
3. 字典 (Dict)
字典是键值对形式的无序集合,用于存储关联数据。
创建和访问字典
person = {'name': '张三', 'age': 25}
# 访问键对应的值
print(person['name']) # 输出: 张三
修改和新增键值对
# 修改
person['age'] = 26
# 新增
person['city'] = '火星'
print(person) # 输出: {'name': '张三', 'age': 26, 'city': '火星'}
常用方法
# 获取所有键
print(person.keys())
# 获取所有值
print(person.values())
# 获取键值对
print(person.items())
# 获取键值对数量
print(len(person))
# 删除键值对
person.pop('age')
4. 集合 (Set)
集合是无序且不重复的元素集合。
创建和访问集合
numbers = {1, 2, 3, 4}
# 判断元素是否存在
print(2 in numbers) # 输出: True
# 判断元素不在这里面
print(2 not in numbers) # 输出: False
添加和删除元素
numbers.add(5) # 添加元素
numbers.remove(3) # 删除元素
print(numbers) # 输出: {1, 2, 4, 5}
集合运算
A = {1, 2, 3}
B = {3, 4, 5}
# 交集
print(A & B) # 输出: {3}
# 并集
print(A | B) # 输出: {1, 2, 3, 4, 5}
# 差集
print(A - B) # 输出: {1, 2}
二、Python 列表、元组、字典和集合遍历方式.
列表 (List)、元组 (Tuple)、字典 (Dict) 和 集合 (Set),每种数据结构的遍历方式。
1. 列表 (List)
列表是一个有序、可变的集合,常用于存储多个数据项。
创建和访问列表
fruits = ['苹果', '香蕉', '橙子']
print(fruits[0]) # 输出: 苹果
遍历列表
# 使用 for 循环遍历
for fruit in fruits:
print(fruit)
# 使用索引遍历
for i in range(len(fruits)):
print(f"{i}: {fruits[i]}")
# 使用 enumerate 同时获取索引和值
for index, fruit in enumerate(fruits):
print(f"{index}: {fruit}")
2. 元组 (Tuple)
元组是一个不可变的有序集合,适用于不需要修改的数据。
创建和访问元组
colors = ('red', 'green', 'blue')
print(colors[1]) # 输出: green
遍历元组
# 普通遍历
for color in colors:
print(color)
# 使用 enumerate 获取索引和值
for index, color in enumerate(colors):
print(f"{index}: {color}")
3. 字典 (Dict)
字典是键值对形式的无序集合,用于高效存储关联数据。
创建和访问字典
person = {'name': '张三', 'age': 25, 'city': '火星'}
print(person['name']) # 输出: 张三
遍历字典
# 遍历键
for key in person:
print(key)
# 遍历键值对
for key, value in person.items():
print(f"{key}: {value}")
# 遍历所有值
for value in person.values():
print(value)
4. 集合 (Set)
集合是无序且不重复的元素集合,适合执行集合运算。
创建和访问集合
numbers = {1, 2, 3, 4}
print(5 in numbers) # 输出: False
print(1 in numbers) # 输出: True
遍历集合
# 使用 for 遍历集合
for num in numbers:
print(num)
# 使用集合推导式生成新集合, x的2次方, x=numbers中的每一个元素.
new_number = {x ** 2 for x in numbers}
print(new_number) # 输出: {1, 4, 9, 16}
各类数据结构的高级遍历技巧
1. 使用 while
遍历列表
i = 0
while i < len(fruits):
print(fruits[i])
i += 1
2. 嵌套遍历
在列表或字典中嵌套其他数据结构时,可以使用多层循环遍历。
# 嵌套列表
arrays = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for row in arrays:
for val in row:
print(val, end=" ") # 结束用空格
print() # 换行 , 默认结束换行
# 嵌套字典
students = {
'zhangsan': {'age': 25, 'grade': 'XY'},
'lisi': {'age': 22, 'grade': 'XX'}
}
for name, info in students.items():
print(f"{name}'s details:")
for key, value in info.items():
print(f" {key}: {value}")
总结
本文介绍: 列表、元组、字典和集合 基本操作和遍历方法.
- 列表:可变且有序,用于存储多种元素。
- 元组:不可变的列表,适用于不需要修改的数据。
- 字典:通过键值对存储数据,方便快速查找。
- 集合:无序且不重复的数据集合,适用于集合操作。
每日整理一下, 心情多好一天!