一、Python列表
Python列表(List)是Python中最常用的数据结构之一,它允许你存储一个有序的元素集合。列表中的元素可以是不同类型,并且列表的大小是动态的,可以在运行时增长或缩小。
创建列表
你可以使用方括号 []
来创建一个列表,元素之间用逗号分隔。
# 创建一个空列表
empty_list = []
# 创建一个包含不同类型元素的列表
mixed_list = [1, "hello", 3.14, True]
# 创建一个包含整数的列表
integer_list = [1, 2, 3, 4, 5]
# 创建一个包含列表的列表(嵌套列表)
nested_list = [1, [2, 3], 4]
访问列表元素
你可以通过索引来访问列表中的元素。索引从0开始。
# 访问列表中的第一个元素
first_element = integer_list[0] # 输出: 1
# 访问列表中的最后一个元素
last_element = integer_list[-1] # 输出: 5
# 访问列表中的第三个元素
third_element = integer_list[2] # 输出: 3
列表操作
列表支持多种操作,包括添加、删除、修改元素等。
# 添加元素到列表末尾
integer_list.append(6) # integer_list 变为 [1, 2, 3, 4, 5, 6]
# 插入元素到指定位置
integer_list.insert(1, 0) # 在索引1处插入0,integer_list 变为 [1, 0, 2, 3, 4, 5, 6]
# 删除指定位置的元素
integer_list.remove(3) # 删除元素3,integer_list 变为 [1, 0, 2, 4, 5, 6]
# 删除指定索引的元素
integer_list.pop(1) # 删除索引1处的元素,integer_list 变为 [1, 2, 4, 5, 6],并返回被删除的元素0
# 列表切片,获取子列表
sub_list = integer_list[1:4] # 获取索引1到3的元素,sub_list 变为 [2, 4, 5]
# 修改列表中的元素
integer_list[2] = 9 # 将索引2处的元素4修改为9,integer_list 变为 [1, 2, 9, 5, 6]
# 列表排序
integer_list.sort() # 将列表按升序排序,integer_list 变为 [1, 2, 5, 6, 9]
# 反转列表
integer_list.reverse() # 将列表反转,integer_list 变为 [9, 6, 5, 2, 1]
列表的用途
- 存储有序的数据集合
- 作为函数参数和返回值
- 在循环中迭代
- 与其他数据结构(如元组、集合、字典)一起使用
列表推导式
列表推导式(List Comprehensions)是Python中创建列表的一种简洁方法。
# 创建一个包含1到10之间所有偶数的列表
even_numbers = [x for x in range(1, 11) if x % 2 == 0] # 输出: [2, 4, 6, 8, 10]
# 创建一个包含1到10之间所有数字的平方的列表
squares = [x**2 for x in range(1, 11)] # 输出: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
列表推导式提供了一种简洁且可读的方式来创建和操作列表。
二、Python列表脚本操作符
Python列表支持多种操作符,用于执行列表的常用操作。以下是一些常用的列表操作符和它们的用法:
1. 索引操作符 []
用于访问列表中的元素。
my_list = [10, 20, 30, 40, 50]
print(my_list[0]) # 输出: 10
print(my_list[2]) # 输出: 30
2. 切片操作符 [:]
用于获取列表的一个子集(子列表)。
my_list = [10, 20, 30, 40, 50]
print(my_list[1:4]) # 输出: [20, 30, 40]
3. 连接操作符 +
用于连接两个列表。
list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined_list = list1 + list2
print(combined_list) # 输出: [1, 2, 3, 4, 5, 6]
4. 重复操作符 *
用于重复列表。
my_list = [1, 2, 3]
repeated_list = my_list * 3
print(repeated_list) # 输出: [1, 2, 3, 1, 2, 3, 1, 2, 3]
5. 成员关系操作符 in
和 not in
用于检查一个元素是否存在于列表中。
my_list = [1, 2, 3, 4, 5]
print(2 in my_list) # 输出: True
print(6 not in my_list) # 输出: True
6. 长度操作符 len()
用于获取列表的长度(即元素的数量)。
my_list = [1, 2, 3, 4, 5]
print(len(my_list)) # 输出: 5
7. 列表比较操作符 <
、<=
、>
、>=
、==
、!=
用于比较两个列表。列表比较是基于元素逐个比较,且列表必须长度相同才能比较。
list1 = [1, 2, 3]
list2 = [1, 2, 3]
list3 = [1, 2, 4]
print(list1 == list2) # 输出: True
print(list1 != list3) # 输出: True
print(list1 < list3) # 输出: True,因为第一个不同的元素是3和4,3<4
8. 列表方法
列表还提供了许多内置方法,如 append()
, extend()
, insert()
, remove()
, pop()
, index()
, count()
, sort()
, reverse()
等,用于修改和操作列表。
my_list = [1, 2, 3, 4, 5]
# 添加元素到列表末尾
my_list.append(6)
print(my_list) # 输出: [1, 2, 3, 4, 5, 6]
# 扩展列表,添加另一个列表的所有元素
my_list.extend([7, 8, 9])
print(my_list) # 输出: [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 在指定位置插入元素
my_list.insert(1, 0)
print(my_list) # 输出: [1, 0, 2, 3, 4, 5, 6, 7, 8, 9]
# 删除指定元素(第一个匹配项)
my_list.remove(2)
print(my_list) # 输出: [1, 0, 3, 4, 5, 6, 7, 8, 9]
# 删除指定索引的元素,并返回它
popped_element = my_list.pop(1)
print(popped_element) # 输出: 0
print(my_list)
三、Python 列表截取与拼接
在Python中,列表的截取和拼接是常见的操作。以下是关于这些操作的详细解释:
列表截取(切片)
列表切片是通过索引来截取列表中的一部分元素,并返回一个新的列表。切片的语法是:list[start:end:step]
start
:起始索引,包含该索引。end
:结束索引,不包含该索引。如果省略,将使用列表的最后一个元素。step
:步长,表示每隔多少个元素取一个元素。如果省略,默认为1。
# 创建一个列表
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 截取从索引1到索引4(不包含4)的元素
sliced_list = my_list[1:4]
print(sliced_list) # 输出: [1, 2, 3]
# 每隔一个元素截取
sliced_list = my_list[::2]
print(sliced_list) # 输出: [0, 2, 4, 6, 8]
# 从索引5开始到列表末尾
sliced_list = my_list[5:]
print(sliced_list) # 输出: [5, 6, 7, 8, 9]
# 截取到索引5(不包含5)
sliced_list = my_list[:5]
print(sliced_list) # 输出: [0, 1, 2, 3, 4]
# 负数索引表示从列表末尾开始计数
sliced_list = my_list[-3:]
print(sliced_list) # 输出: [7, 8, 9]
列表拼接
列表拼接是将两个或多个列表连接成一个新的列表。Python中,可以通过+
操作符或者extend()
方法来实现列表的拼接。
使用+
操作符
# 创建两个列表
list1 = [1, 2, 3]
list2 = [4, 5, 6]
# 使用+操作符拼接列表
combined_list = list1 + list2
print(combined_list) # 输出: [1, 2, 3, 4, 5, 6]
使用extend()
方法
extend()
方法会将一个列表的所有元素添加到另一个列表的末尾,而不会创建新的列表。
# 创建两个列表
list1 = [1, 2, 3]
list2 = [4, 5, 6]
# 使用extend()方法将list2的元素添加到list1的末尾
list1.extend(list2)
print(list1) # 输出: [1, 2, 3, 4, 5, 6]
# 注意,list2本身并没有改变
print(list2) # 输出: [4, 5, 6]
这两种方法都可以实现列表的拼接,但它们的行为是不同的:+
操作符会创建一个新的列表,而extend()
方法会修改原有的列表。
列表与字符串的拼接
列表和字符串不能直接拼接,因为它们是不同类型的数据结构。但是,你可以将列表转换为字符串,然后与其他字符串拼接。
# 创建一个列表
my_list = ['Hello', 'World']
# 将列表转换为字符串,并用空格拼接
combined_string = ' '.join(my_list)
print(combined_string) # 输出: Hello World
在这个例子中,join()
方法将列表my_list
中的元素用空格连接起来,生成了一个新的字符串combined_string
。
四、Python列表函数&方法
Python列表(list)是一种非常灵活和常用的数据结构,它包含了一系列有序的元素。Python为列表提供了许多内置的函数和方法,以便用户可以对列表进行各种操作。以下是一些常用的列表函数和方法:
列表函数
list()
:将一个可迭代的对象(如元组、字符串、集合等)转换为列表。
my_tuple = (1, 2, 3)
my_list = list(my_tuple)
print(my_list) # 输出: [1, 2, 3]
len()
:返回列表的长度(即列表中元素的数量)。
my_list = [1, 2, 3, 4, 5]
print(len(my_list)) # 输出: 5
列表方法
append(item)
:在列表的末尾添加一个元素。
my_list = [1, 2, 3]
my_list.append(4)
print(my_list) # 输出: [1, 2, 3, 4]
extend(iterable)
:在列表的末尾一次性添加另一个可迭代对象的所有元素。
my_list = [1, 2, 3]
my_list.extend([4, 5, 6])
print(my_list) # 输出: [1, 2, 3, 4, 5, 6]
insert(index, item)
:在指定索引位置插入一个元素。
my_list = [1, 2, 4]
my_list.insert(2, 3)
print(my_list) # 输出: [1, 2, 3, 4]
remove(item)
:移除列表中第一个匹配的元素。
my_list = [1, 2, 3, 2, 4]
my_list.remove(2)
print(my_list) # 输出: [1, 3, 2, 4]
pop(index)
:移除并返回指定索引位置的元素。如果没有指定索引,则默认移除并返回最后一个元素。
my_list = [1, 2, 3]
item = my_list.pop(1)
print(my_list) # 输出: [1, 3]
print(item) # 输出: 2
index(item)
:返回列表中第一个匹配元素的索引。
my_list = [1, 2, 3, 2, 4]
print(my_list.index(2)) # 输出: 1
count(item)
:返回列表中某个元素出现的次数。
my_list = [1, 2, 3, 2, 2, 4]
print(my_list.count(2)) # 输出: 3
reverse()
:反转列表中的元素顺序。
my_list = [1, 2, 3, 4]
my_list.reverse()
print(my_list) # 输出: [4, 3, 2, 1]
sort(key=None, reverse=False)
:对列表进行排序。key
参数指定排序时比较的依据,reverse
参数指定是否降序排序(默认为升序)。
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort()
print(my_list) # 输出: [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
clear()
:移除列表中的所有元素。my_list = [1, 2, 3] my_list.clear() print(my_list) # 输出: []