Python中列表、字典、元组数据结构的简单学习笔记
在Python中,列表(List)、字典(Dictionary)和元组(Tuple)是常用的数据结构。它们都有不同的使用场景和特点,下面我们来详细介绍它们。
列表(List)
列表是一种有序的集合,其中的元素可以是任何数据类型,包括整数、浮点数、字符串、列表等。列表使用方括号[ ]
来定义,元素之间用逗号,
分隔。
列表的定义和基本操作
下面是创建列表的例子:
my_list = [1, 2, 3, "four", "five"]
print(my_list) # 输出 [1, 2, 3, 'four', 'five']
列表的基本操作包括:
- 根据索引访问元素
- 列表切片
- 修改、添加和删除元素
以下是具体的操作示例:
my_list = [1, 2, 3, "four", "five"]
# 根据索引访问元素
print(my_list[0]) # 输出 1
print(my_list[3]) # 输出 'four'
# 列表切片
print(my_list[1:3]) # 输出 [2, 3]
print(my_list[3:]) # 输出 ['four', 'five']
print(my_list[:-2]) # 输出 [1, 2, 3]
# 修改、添加和删除元素
my_list[0] = 0 # 修改元素
print(my_list) # 输出 [0, 2, 3, 'four', 'five']
my_list.append("six") # 添加元素
print(my_list) # 输出 [0, 2, 3, 'four', 'five', 'six']
del my_list[2] # 删除元素
print(my_list) # 输出 [0, 2, 'four', 'five', 'six']
列表的高级操作
除了基本操作外,列表还有许多高级操作,例如:
- 列表排序
- 列表合并
- 列表去重
以下是具体的操作示例:
my_list = [3, 2, 4, 1, 5]
my_list.sort() # 列表排序
print(my_list) # 输出 [1, 2, 3, 4, 5]
my_list2 = ["six", "seven", "eight"]
my_list3 = my_list + my_list2 # 列表合并
print(my_list3) # 输出 [1, 2, 3, 4, 5, 'six', 'seven', 'eight']
my_list4 = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
my_set = set(my_list4) # 列表去重
my_list5 = list(my_set)
print(my_list5) # 输出 [1, 2, 3, 4]
字典(Dictionary)
字典是一种无序的键值对集合,其中的元素也可以是任何数据类型。字典使用花括号{ }
来定义,元素之间用逗号,
分隔。每个键值对之间用冒号:
来分隔键和值。
字典的定义和基本操作
下面是创建字典的例子:
my_dict = {"name": "Peter", "age": 21, "score": [80, 90, 95]}
print(my_dict) # 输出 {'name': 'Peter', 'age': 21, 'score': [80, 90, 95]}
字典的基本操作包括:
- 根据键访问值
- 修改、添加和删除键值对
以下是具体的操作示例:
my_dict = {"name": "Peter", "age": 21, "score": [80, 90, 95]}
# 根据键访问值
print(my_dict["name"]) # 输出 Peter
print(my_dict["score"]) # 输出 [80, 90, 95]
# 修改、添加和删除键值对
my_dict["age"] = 22 # 修改键值对
print(my_dict) # 输出 {'name': 'Peter', 'age': 22, 'score': [80, 90, 95]}
my_dict["gender"] = "male" # 添加键值对
print(my_dict) # 输出 {'name': 'Peter', 'age': 22, 'score': [80, 90, 95], 'gender': 'male'}
del my_dict["score"] # 删除键值对
print(my_dict) # 输出 {'name': 'Peter', 'age': 22, 'gender': 'male'}
字典的高级操作
除了基本操作外,字典还有许多高级操作,例如:
- 获取字典的键列表、值列表、键值对列表
- 遍历字典的键、值、键值对
以下是具体的操作示例:
my_dict = {"name": "Peter", "age": 21, "score": [80, 90, 95]}
# 获取键列表、值列表、键值对列表
print(list(my_dict.keys())) # 输出 ['name', 'age', 'score']
print(list(my_dict.values())) # 输出 ['Peter', 21, [80, 90, 95]]
print(list(my_dict.items())) # 输出 [('name', 'Peter'), ('age', 21), ('score', [80, 90, 95])]
# 遍历字典的键、值、键值对
for key in my_dict.keys():
print(key, end=" ") # 输出 name age score
for value in my_dict.values():
print(value, end=" ") # 输出 Peter 21 [80, 90, 95]
for item in my_dict.items():
print(item, end=" ") # 输出 ('name', 'Peter') ('age', 21) ('score', [80, 90, 95])
元组(Tuple)
元组是一种有序的不可变集合,其中的元素可以是任何数据类型,包括整数、浮点数、字符串、元组等。元组使用圆括号( )
来定义,元素之间用逗号,
分隔。
元组的定义和基本操作
下面是创建元组的例子:
my_tuple = (1, 2, "three", [4, 5])
print(my_tuple) # 输出 (1, 2, 'three', [4, 5])
元组的基本操作包括:
- 根据索引访问元素
- 元组切片
- 不可变性
以下是具体的操作示例:
my_tuple = (1, 2, "three", [4, 5])
# 根据索引访问元素
print(my_tuple[0]) # 输出 1
print(my_tuple[2]) # 输出 'three'
# 元组切片
print(my_tuple[1:3]) # 输出 (2, 'three')
print(my_tuple[:2]) # 输出 (1, 2)
print(my_tuple[2:]) # 输出 ('three', [4, 5])
# 不可变性
my_tuple[1] = 0 # 报错,元组不可变
元组的高级操作
虽然元组不可变,但我们可以通过以下方式进行“间接修改”:
- 将元组转换为列表进行修改
- 将多个元组合并为一个新的元组
以下是具体的操作示例:
my_tuple = (1, 2, "three", [4, 5])
# 将元组转换为列表进行修改
my_list = list(my_tuple)
my_list[1] = 0
my_list[3].append(6)
my_tuple2 = tuple(my_list)
print(my_tuple2) # 输出 (1, 0, 'three', [4, 5, 6])
# 将多个元组合并为一个新的元组
my_tuple3 = (7, 8, "nine")
my_tuple4 = my_tuple + my_tuple3
print(my_tuple4) # 输出 (1, 0, 'three', [4, 5, 6], 7, 8, 'nine')
结论
对于这三种数据结构,我们需要灵活应用,根据不同的使用场景选择合适的结构。需要注意的是,列表是有序、可变的,字典是无序、可变的,而元组是有序、不可变的。在实际使用中,我们可以结合常用的操作,按照具体需求灵活运用。