在 Python 中,数据结构用于组织和存储数据。了解并掌握这些数据结构是编程的基础。本篇文章介绍 列表 (List)、元组 (Tuple)、字典 (Dict) 和 集合 (Set),以及常用的方法和示例。
| 下面分为两大部分、1 基础操作、2 对集合遍历和使用
列表是一个有序且可变的数据集合,可以存储不同类型的元素。
# 创建列表
list = ["苹果", "玉米", "水蜜桃", "南瓜", "葡萄"]
# 访问列表元素
print(list[0]) # 输出第一个元素 苹果
print(list[-1]) # 输出倒数第一个元素 葡萄
print(list[-2]) # 输出倒数第二个元素 南瓜
# 获取索引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)
元组和列表类似,但它是不可变的,也就是说一旦创建后不能修改元素。
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)
字典是键值对形式的无序集合,用于存储关联数据。
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')
集合是无序且不重复的元素集合。
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}
列表 (List)、元组 (Tuple)、字典 (Dict) 和 集合 (Set),每种数据结构的遍历方式。
列表是一个有序、可变的集合,常用于存储多个数据项。
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}")
元组是一个不可变的有序集合,适用于不需要修改的数据。
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}")
字典是键值对形式的无序集合,用于高效存储关联数据。
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)
集合是无序且不重复的元素集合,适合执行集合运算。
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}
while
遍历列表i = 0
while i < len(fruits):
print(fruits[i])
i += 1
在列表或字典中嵌套其他数据结构时,可以使用多层循环遍历。
# 嵌套列表
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}")
本文介绍: 列表、元组、字典和集合 基本操作和遍历方法.
每日整理一下, 心情多好一天!