Python 列表 是通用且常用的数据结构,允许你存储元素集合,包括 数字、字符串,甚至其他列表。它们支持各种基本操作和方法,使你能够轻松地操作和处理列表元素。列表的一些常用操作和方法包括索引、切片、追加、插入、删除、排序和搜索元素。让我们逐步回顾一下基本列表方法和 函数。
定义元素的索引
列表是有序的元素集合,可以是任何类型。列表中的每个元素都有一个唯一的索引,表示其在列表中的位置。列表索引从 0 开始,这意味着列表中的第一个元素的索引为 0,第二个元素的索引为 1,依此类推。
让我们看看在 Python 列表中获取项目索引的方法。
没有直接称为 indexof()
的方法来查找列表中元素的索引。但是,你可以使用 Python 中内置的 index()
方法来获取列表中项目的索引。
index()
方法将元素作为参数,并返回该元素在列表中的第一次出现的索引。例如,假设你有一个字符串列表
my_list = ['apple', 'banana', 'cherry', 'banana', 'date']
你可以使用 index()
方法查找元素“banana”的第一次出现的索引,如下所示
index_of_banana = my_list.index('banana') # 1
如果在列表中找不到元素,index()
方法会引发 ValueError
。
Python 中的列表解析
让我们回顾一下 Python 中的列表解析是什么。列表解析是通过对现有列表或可迭代对象的每个元素应用表达式来创建新列表的简洁方式。列表解析的基本语法是
new_list = [expression(item) for item in iterable if condition]
其中
-
expression
是将应用于可迭代对象每个元素的操作。 -
item
是表示可迭代对象每个元素的变量。 -
iterable
是元素序列,例如列表或范围。 -
condition
是基于条件筛选元素的可选表达式。
例如,要创建一个新列表,其中包含从 1
到 5
的数字的平方,可以使用如下列表解析
squares = [x**2 for x in range(1, 6)]
print(squares) # Output: [1, 4, 9, 16, 25]
还可以使用 if
语句基于条件筛选元素。例如,要创建一个新列表,其中包含从 1
到 10
的偶数,可以使用如下列表解析
evens = [x for x in range(1, 11) if x % 2 == 0]
print(evens) # Output: [2, 4, 6, 8, 10]
确定列表的长度
在 Python 中,可以使用内置的 len()
函数获取列表的长度。要计算 Python 中列表中元素的数量,也可以使用 len()
函数。
这里有一个示例
my_list = [1, 2, 3, 4, 5]
length = len(my_list)
print(length) # Output: 5
还可以使用
len()
函数检查 Python 列表是否为空,因为 Python 中没有isEmpty()
方法。
这里有一个使用检查的示例
my_list = []
if len(my_list) == 0:
print("The list is empty")
else:
print("The list is not empty")
列表反转
要反转 Python 中的列表,可以使用内置的 reverse()
方法或切片符号。以下是这两个示例
使用 reverse()
方法
my_list = [1, 2, 3, 4, 5]
my_list.reverse()
print(my_list) # Output: [5, 4, 3, 2, 1]
使用切片符号
my_list = [1, 2, 3, 4, 5]
reversed_list = my_list[::-1]
print(reversed_list) # Output: [5, 4, 3, 2, 1]
Python 中的列表筛选
在 Python 中,可以使用 filter()
函数筛选列表,即创建新列表,其中仅包含满足特定条件的现有列表中的元素。
filter()
函数接受两个参数:函数和可迭代对象。该函数应为可迭代对象中的每个元素返回 True 或 False。然后,filter()
函数返回一个新可迭代对象,其中仅包含函数返回 True 的元素。
这里有一个示例,筛选数字列表,仅包含偶数
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def is_even(num):
return num % 2 == 0
even_numbers = list(filter(is_even, numbers))
print(even_numbers) # Output: [2, 4, 6, 8, 10]
列表连接或合并
在 Python 中,可以使用 +
运算符连接两个或多个列表。以下是合并两个列表的示例
list1 = [1, 2, 3]
list2 = [4, 5, 6]
concatenated_list = list1 + list2
print(concatenated_list) # Output: [1, 2, 3, 4, 5, 6]
连接列表的另一种方法是 extend()
方法
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list1.extend(list2)
print(list1) # Output: [1, 2, 3, 4, 5, 6]
连接列表项
要将 Python 列表连接成字符串,可以使用 join()
方法。这里有一个示例
my_list = ['apple', 'banana', 'orange']
my_string = ', '.join(my_list)
print(my_string) # Output: apple, banana, orange
可以在 join()
方法中使用任何分隔符字符串,包括空字符串(如果要将元素连接在一起而不使用任何分隔符)。
Python 中的列表列表
在 Python 中,可以通过在另一个列表中嵌套一个或多个列表来创建列表列表。以下是创建列表中列表的示例
list_of_lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
可以使用嵌套索引访问列表中的列表元素。例如,要访问第三个子列表的第二个元素,可以使用以下代码
element = list_of_lists[2][1]
这会将变量 element
设置为值 8。
遍历列表
可以使用 for
循环在 Python 中循环列表。以下是遍历列表的示例
my_list = [1, 2, 3, 4, 5]
for item in my_list:
print(item)
还可以循环遍历字符串列表或任何其他类型的数据。无论列表中数据的类型如何,for
循环的语法都是相同的。
在 Python 中打印列表
要在 Python 中打印列表,只需使用 print
函数并将列表作为参数传递即可。以下是打印列表的示例
my_list = [1, 2, 3, 4, 5]
print(my_list) # Output: [1, 2, 3, 4, 5]
如果要将列表中的每个项目打印在单独的行上,可以使用循环遍历列表并逐个打印每个项目。这里有一个示例
my_list = [1, 2, 3, 4, 5]
for item in my_list:
print(item)
Python 列表求和
要查找 Python 中列表的总和,可以使用内置的 sum()
函数。以下是汇总列表元素的示例
my_list = [1, 2, 3, 4, 5]
list_sum = sum(my_list)
print(list_sum) # Output: 15
在 Python 中切片列表
在 Python 中,可以使用切片符号提取列表的一部分。列表切片的语法是
my_list[start:end:step]
其中 start
是要包括的第一个项目的索引,end
是要排除的第一个项目的索引,step
是在切片中每个项目之间要跳过的项目数(默认为 1)。
以下是一些示例,说明如何使用列表切片
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# get first three items
print(my_list[:3]) # output: [0, 1, 2]
# get items 3-5
print(my_list[3:6]) # output: [3, 4, 5]
# get every other item starting from the second item
print(my_list[1::2]) # output: [1, 3, 5, 7, 9]
# reverse the list
print(my_list[::-1]) # output: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
您还可以使用切片替换多个元素。以下是一个示例
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
my_list[3:6] = [0] # Output: [0, 1, 2, 0, 6, 7, 8, 9]
列表比较
在 Python 中,您可以使用比较运算符(<、<=、>、>=、==、!=)比较两个列表。以下是两个列表比较的示例
list1 = [1, 2, 3]
list2 = [1, 2, 4]
if list1 == list2:
print("The two lists are equal")
elif list1 < list2:
print("list1 is less than list2")
else:
print("list1 is greater than list2")
检查列表是否包含元素
在 Python 中,列表数据类型是一个内置类型,表示有序项的集合。contains
方法不是 Python 列表的内置方法,但您可以使用 in
关键字或 index
方法检查项是否在列表中。
如果项在列表中,in
关键字返回 True,否则返回 False。以下是一个示例
my_list = [1, 2, 3, 4, 5]
if 3 in my_list:
print("3 is in the list")
else:
print("3 is not in the list") # Output: 3 is in the list
index
方法返回列表中项的第一个出现的索引。如果项不在列表中,它将引发 ValueError
。以下是一个示例
my_list = ["apple", "banana", "cherry"]
index = my_list.index("banana")
print(index) # Output: 1
列表映射
在 Python 中,map()
是一个内置函数,它对可迭代对象(如列表、元组或集合)的每个元素应用一个函数,并返回一个包含转换后值的新可迭代对象。
以下是如何使用 map()
对列表的每个元素应用函数的一个示例
# Define a function to apply to each element of the list
def double(x):
return x * 2
# Define a list
my_list = [1, 2, 3, 4, 5]
# Use map() to apply the function to each element of the list
new_list = map(double, my_list)
# Convert the result to a list and print it
print(list(new_list))
# Output: [2, 4, 6, 8, 10]
拆分列表的元素
您可以使用 split()
方法在 Python 中拆分列表,该方法可用于字符串,但不可用于列表。但是,您可以使用切片提取列表的一部分,并使用这些元素创建一个新列表。
这里有一个示例
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
split_index = 5
list_a = my_list[:split_index]
list_b = my_list[split_index:]
print(list_a) # Output: [1, 2, 3, 4, 5]
print(list_b) # Output: [6, 7, 8, 9, 10]
在 Python 中从列表中删除重复项
要从 Python 列表中删除重复项,您可以使用内置 set()
函数。以下是一个示例
my_list = [1, 2, 3, 3, 4, 5, 5, 5, 6]
new_list = list(set(my_list))
print(new_list) # Output: [1, 2, 3, 4, 5, 6]