目录
一、创建列表
1.直接创建列表:
2.使用list()构造器
3.使用列表推导式
4.创建空列表
二、访问列表元素
1.列表支持通过索引访问元素,索引从0开始:
2.还可以使用切片操作访问列表的一部分:
三、修改列表元素
四、添加元素
1.append():在末尾添加元素
2.insert():在指定位置插入元素
五、删除元素
1.del:删除指定位置的元素
2.remove():删除指定值的第一个匹配项
3.pop():删除并返回最后一个元素
六、排序
七、列表长度
八、遍历列表
九、列表推导式
十、成员测试
十一、连接列表
1.使用extend()方法连接两个列表:
2.使用“+”连接两个列表
十二、列表切片
1.提取列表前3个元素:
2.从第2个元素开始到倒数第二个元素:
3.每隔一个元素提取一次:
4.反向切片,提取倒序的前三个元素:
5.步长为负数时,会从后向前提取元素,即翻转列表:
十三、列表复制
1.浅拷贝(Shallow Copy)
2.深拷贝(Deep Copy)
十四、列表翻转
1.使用reverse()方法可以原地翻转列表, 直接翻转原列表。
2.使用切片翻转, 生成新的列表,不修改原列表。
十五、列表排序
1.使用sorted()函数: sorted()是一个返回排序后新列表的函数,它不会改变原列表。
2.使用list.sort()方法: list.sort()是列表对象的一个方法,它会直接修改原列表。
十六、列表推导式中的条件过滤
十七、列表连接与拆分
1.使用+运算符可以连接两个列表,使用*可以进行重复。
2.列表可以使用split()方法进行拆分,但这是字符串的方法,因此你需要先将列表转换为字符串。
十八、列表映射
1.使用列表推导式进行映射
2.使用map()进行映射
十九、列表的嵌套
二十、扁平化嵌套列表
1.使用itertools.chain扁平化嵌套列表
2.使用递归扁平化嵌套列表
二十一、列表的差集、交集和并集
二十二、列表的旋转
二十三、列表的枚举
二十四、列表的批量赋值
二十五、列表的批量赋值
1.使用clear()方法
2.使用切片赋值
3.重新赋值
二十六、列表的无限循环
列表(list)是一种非常灵活的数据结构,它支持多种操作,包括元素的添加、删除、访问和迭代等
创建列表的方式有多种,下面列举了三种常见的创建方式:
my_list = [1, 2, 3, 4, 5]
my_list = list((1, 2, 3, 4, 5))
my_list = [x for x in range(1, 6)]
方法一:
my_list = [] # 推荐
方法二:
my_list = list()
# 通过索引访问元素
first_element = my_list[0] # 1
last_element = my_list[-1] # 5
# 切片操作
sub_list = my_list[1:4] # [2, 3, 4]
通过索引,我们可以轻松地修改列表中的元素:
# 修改指定位置的元素
my_list[1] = 20 # [1, 20, 3, 4, 5]
my_list.append(6) # [1, 20, 3, 4, 5, 6]
my_list.insert(2, 25) # [1, 20, 25, 3, 4, 5, 6]
del my_list[2] # [1, 20, 3, 4, 5, 6]
my_list.remove(3) # [1, 20, 4, 5, 6]
last_element = my_list.pop() # [1, 20, 4, 5]
列表可以通过sort()方法进行永久排序,也可以使用sorted()函数进行临时排序:
# 对列表进行永久排序(改变原列表)
my_list.sort() # [1, 4, 5, 20]
# 对列表进行临时排序(不改变原列表), 返回一个新列表
sorted_list = sorted(my_list) # [1, 4, 5, 20]
使用len()函数获取列表长度:
# 获取列表长度
length = len(my_list) # 4
使用for循环遍历列表:
# 使用for循环遍历列表
my_list = [1, 2, 3, 4]
for item in my_list:
print(item) # 依次打印出1, 2, 3, 4
列表推导式是一种简洁的创建列表的方式:
# 使用列表推导式创建新列表
squares = [x**2 for x in range(10)] # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
# 对原列表进行操作
my_list = [x*2 for x in squares ] # [0, 2, 8, 18, 32, 50, 72, 98, 128, 162]
使用in关键字检查元素是否在列表中:
# 检查元素是否在列表中
is_in_list = 5 in my_list # True
# 连接两个列表
my_list.extend([7, 8, 9]) # [1, 4, 5, 7, 8, 9]
# 连接两个列表
my_list1 = [1, 2, 3]
my_list2 = [4, 5, 6]
my_list = my_list1 + my_list2 # [1, 4, 5, 7, 8, 9]
切片是Python中一种非常强大的操作,它可以让你轻松获取列表的子集。
list_name[start:end:step]
start
:切片开始的索引位置(包含此位置的元素)。默认值为0,表示从列表开头开始。end
:切片结束前的索引位置(不包含此位置的元素)。默认值是列表长度,即直到列表结尾。step
:步长,表示每次跳跃的元素数量。默认值为1,表示连续取值。需要注意的是,Python的索引是从0开始的,所以第一个元素的索引是0,最后一个元素的索引可以通过 -1
来获取。另外,如果start
大于end
且step
为正数,则返回空列表;反之,若start
小于end
且step
为负数,则也会返回空列表。
my_list = [1, 2, 3, 4, 5, 6]
first_three = my_list[:3] # 结果为 [1, 2, 3]
1middle_elements = my_list[1:-1] # 结果为 [2, 3, 4, 5]
1every_other = my_list[::2] # 结果为 [1, 3, 5]
1last_three_reversed = my_list[-3:] # 结果为 [4, 5, 6]