列表操作:
添加操作:
lst.append(x)
:在列表lst
尾部添加元素x
。lst.insert(idx, x)
:将元素x
插入列表lst
的idx
索引位置,原有元素向后移。
删除操作:
del lst[idx]
:删除列表lst
中索引为idx
的元素。lst.pop(idx=-1)
:移除并返回列表lst
中指定索引idx
的元素。若未提供索引,默认移除最后一个元素。lst.remove(x)
:移除列表lst
中第一个值为x
的元素。若x
不存在,会抛出ValueError
。
列表的嵌套:
- 列表可以包含其他列表,形成嵌套列表,可以用作多维数组。
名字绑定:
- 将列表赋值给另一个变量,实际上是将两个变量都指向同一个列表对象。
排序:
lst.sort()
:就地对列表lst
进行排序,默认升序;lst.sort(reverse=True)
进行降序排序。sorted(lst)
:返回新的排序后的列表拷贝,原列表不变。
倒序:
lst.reverse()
:就地将列表lst
中的元素反向排序。
range()
函数:
range()
用于生成一个整数序列。如:range(x)
生成0
到x-1
,range(x, y)
生成x
到y-1
,range(x, y, z)
生成从x
开始,每隔z
的整数,直到y-1
。
列表统计函数:
max(lst)
、min(lst)
、sum(lst)
:分别返回列表lst
中的最大值、最小值和所有元素的总和。
列表快速生成:
- 列表推导式可以生成列表。如:
[x for x in range(10) if x % 3 == 0]
生成[0, 3, 6, 9]
。 - 二维列表推导:
[[r * c for c in range(8)] for r in range(10)]
生成一个10行8列的矩阵。
列表运算:
- 重复操作:
[1, 3, 5] * 3
结果是[1, 3, 5, 1, 3, 5, 1, 3, 5]
。
random
模块扩展:
random.randint(a, b)
:生成一个[a, b]
范围内的随机整数。random.choice(seq)
:从序列seq
中随机选择一个元素。random.shuffle(lst)
:随机打乱列表lst
中的元素顺序,改变原列表。random.sample(population, k)
:从序列population
中随机选取k
个不重复的元素,作为一个新列表返回。
常用成员函数:
lst.count(x)
:返回元素x
在列表lst
中出现的次数。lst.clear()
:清除列表lst
中的所有元素。lst.extend(iterable)
:将一个iterable
的所有元素添加到列表lst
末尾。lst.index(x)
:返回元素x
在列表lst
中首次出现的索引。lst.remove(x)
:删除列表lst
中值为x
的第一个元素。
列表的复制:
lst.copy()
:返回列表lst
的浅拷贝。lst[:]
:通过切片方式也可以创建一个lst
的浅拷贝。id(obj)
:返回对象obj
的唯一标识符。
列表的切片:
lst[start:stop:step]
:生成从start
索引开始到stop
索引结束(不包括stop
),以step
为步长的元素列表。
例子:
import random
# 生成随机数
rand_num = random.randint(1, 100)
print("Random number between 1 and 100:", rand_num)
# 随机选择
choices = ["apple", "banana", "cherry"]
picked_fruit = random.choice(choices)
print("Picked fruit:", picked_fruit)
# 深层复制列表
import copy
original_list = [[1, 2], [3, 4]]
deep_copied_list = copy.deepcopy(original_list)