列表(Lists):
定义:
- 列表是 Python 中最常用的数据类型之一,用于存储一组有序的元素。
- 列表使用方括号 [] 定义,元素之间用逗号 , 分隔。
特点:
- 列表是可变的(Mutable),可以修改、添加或删除元素。
- 列表中的元素可以是不同的数据类型,甚至可以是另一个列表。
常用操作:
- 访问元素:可以通过索引来访问列表中的元素,索引从 0 开始。
- 修改元素:可以通过索引来修改列表中的元素。
- 添加元素:可以使用 append()、insert() 等方法向列表中添加元素。
- 删除元素:可以使用 remove()、pop()、del 等方法删除列表中的元素。
代码示例:
# 定义一个空列表
my_list = []# 使用 append() 方法向列表末尾添加单个元素
my_list.append(1)
my_list.append(2)
print("After append():", my_list) # 输出:[1, 2]# 使用 extend() 方法向列表末尾添加另一个列表的所有元素
another_list = [3, 4, 5]
my_list.extend(another_list)
print("After extend():", my_list) # 输出:[1, 2, 3, 4, 5]# 使用 insert() 方法在指定位置插入元素
my_list.insert(0, 0)
print("After insert():", my_list) # 输出:[0, 1, 2, 3, 4, 5]# 使用 remove() 方法删除列表中指定值的第一个元素
my_list.remove(3)
print("After remove():", my_list) # 输出:[0, 1, 2, 4, 5]# 使用 pop() 方法删除并返回列表中指定索引的元素,默认删除最后一个元素
popped_element = my_list.pop(0)
print("Popped element:", popped_element) # 输出:0
print("After pop():", my_list) # 输出:[1, 2, 4, 5]# 使用 del 语句删除列表中指定索引的元素或整个列表
del my_list[1]
print("After del:", my_list) # 输出:[1, 4, 5]# 删除整个列表
del my_list
list() 函数
在 Python 中,list() 函数是用于将其他可迭代对象(如元组、字符串、集合等)转换为列表的内置函数。
将元组转换为列表:
my_tuple = (1, 2, 3, 4, 5)
my_list = list(my_tuple)
print(my_list) # 输出:[1, 2, 3, 4, 5]
将字符串转换为列表:
my_string = "hello"
my_list = list(my_string)
print(my_list) # 输出:['h', 'e', 'l', 'l', 'o']
将集合转换为列表:
my_set = {1, 2, 3, 4, 5}
my_list = list(my_set)
print(my_list) # 输出:[1, 2, 3, 4, 5]
将字典的键转换为列表:
my_dict = {'a': 1, 'b': 2, 'c': 3}
my_list = list(my_dict)
print(my_list) # 输出:['a', 'b', 'c']
列表的排序函数
使用 sort() 方法:
sort() 方法用于原地对列表进行排序,即直接修改原列表,而不会返回新的列表。默认情况下,sort() 方法会按照升序对列表进行排序,也可以通过指定 reverse=True 参数来进行降序排序。
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5]# 升序排序
my_list.sort()
print(my_list) # 输出:[1, 1, 2, 3, 4, 5, 5, 6, 9]# 降序排序
my_list.sort(reverse=True)
print(my_list) # 输出:[9, 6, 5, 5, 4, 3, 2, 1, 1]
使用 sorted() 函数:
sorted() 函数用于对列表进行排序,会返回一个新的已排序列表,而不会修改原列表。与 sort() 方法不同,sorted() 函数也可以接受任何可迭代对象作为参数,并返回一个新的列表。
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5]# 升序排序
sorted_list = sorted(my_list)
print(sorted_list) # 输出:[1, 1, 2, 3, 4, 5, 5, 6, 9]# 降序排序
sorted_list = sorted(my_list, reverse=True)
print(sorted_list) # 输出:[9, 6, 5, 5, 4, 3, 2, 1, 1]
reverse() 函数:
my_list = [1, 2, 3, 4, 5]my_list.reverse()
print(my_list) # 输出:[5, 4, 3, 2, 1]
元组(Tuples):
定义:
- 元组是不可变的(Immutable)序列,类似于列表,但是元组中的元素不能被修改。
- 元组使用圆括号 () 定义,元素之间用逗号 , 分隔。
特点:
- 元组一旦创建,其元素不能被修改,但可以访问。
- 元组可以包含不同数据类型的元素,甚至可以是另一个元组。
常用操作:
- 访问元素:可以通过索引来访问元组中的元素,索引从 0 开始。
- 元组是不可变的,因此不能修改、添加或删除元素。
# 定义一个元组
my_tuple = (1, 2, 3, 'a', 'b', 'c')# 访问元组元素
print(my_tuple[0]) # 输出:1
print(my_tuple[3]) # 输出:a# 元组是不可变的,无法修改元素
# my_tuple[0] = 10 # 会引发 TypeError 错误# 元组的元素可以是另一个元组
nested_tuple = ((1, 2), ('a', 'b'))
print(nested_tuple) # 输出:((1, 2), ('a', 'b'))# 元组解构(Tuple unpacking)
x, y, z = my_tuple[:3]
print(x, y, z) # 输出:1 2 3
比较:
# 列表和元组的比较# 列表适合存储可以变动的数据集合
# 比如记录学生的成绩
student_scores = [85, 92, 78, 90]# 元组适合存储一组不变的数据
# 比如一个点的坐标
point = (3, 4)