Python中列表、字典、元组数据结构的简单学习笔记

  • Post category:Python

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

结论

对于这三种数据结构,我们需要灵活应用,根据不同的使用场景选择合适的结构。需要注意的是,列表是有序、可变的,字典是无序、可变的,而元组是有序、不可变的。在实际使用中,我们可以结合常用的操作,按照具体需求灵活运用。