列表(list)是 Python 中最常见且最基础的数据结构之一,它是一个存储对象的容器,可以包含任何类型的对象,包括字符串、数字,甚至其他对象。列表还可以混合存储不同类型的数据。掌握列表的各种操作,如创建、添加、排序等,不仅可以提高编程效率,还能简化数据处理过程。
基本操作
接下来将了解添加、移除或访问列表元素的不同方法。从添加元素的方法开始。
添加元素
可以使用
append()
方法在列表末尾添加一个元素,或者使用
insert()
方法在指定位置添加一个元素。对于添加多个元素,最好的方法是使用
extend()
。
fruits = ['apple', 'banana']
fruits.append('cherry')
fruits
fruits.insert(1, 'orange')
fruits
fruits.extend(['date', 'elderberry',100])
fruits
-
append() 和 extend() 在各自的用途上都很高效。append() 具有常数时间复杂度,使其在添加单个元素时非常高效。
-
insert():对于较长的列表来说,可能效率不高,因为列表中的所有后续元素可能需要移动以为新元素腾出空间。
-
extend() 比在循环中使用 append() 添加多个元素更高效,因为它最小化了反复调整列表大小的开销。
移除元素
移除元素的方法有多种:
# Removes by value
fruits.remove('banana')
fruits
popped_fruit = fruits.pop(2)
print(popped_fruit)
fruits
-
remove(value):删除给定值的第一个实例。当你知道要删除的值但不知道其位置时,这个方法非常有用。
-
pop(index):删除指定位置的对象并返回它。如果未提供索引,则删除并返回最后一个元素。当你确切知道要删除的对象的位置或需要返回已删除的对象时,这个方法非常适合。
-
del list[index]:从给定的切片或索引中删除项目。被删除的对象不会被返回。当你根据位置删除切片或项目且不需要返回已删除的对象时,这个方法非常理想。
访问元素和切片
使用元素的索引是访问列表中元素的简单方法。对列表进行切片可以获取其中的一个子集。
first_fruit = fruits[0]
first_fruit
fruit_slice = fruits[1:3]
fruit_slice
搜索和排序列表
搜索元素
in
关键字可以用来检查列表中是否存在某个元素。使用
index()
方法可以进行更深入的搜索,例如确定某个元素的索引。以下是相关代码。
fruits = ['apple', 'banana', 'cherry']
# Returns True if 'banana' is in the list
is_banana_present = 'banana' in fruits
is_banana_present
banana_index = fruits.index('banana')
banana_index
排序列表
sort()
方法用于就地排序,会直接修改原始列表,使排序变得简单。使用
sorted()
可以获取排序后的列表副本,而不改变原始列表。
numbers = [3, 1, 4, 1, 5, 9, 2]
numbers.sort()
print(numbers)
sorted_numbers = sorted(numbers)
sorted_numbers