目录
列表元素的合并、重复、判断
(1) 合并 使用 ➕ 号
list1 = ['苹果', '西瓜', '香蕉', '菠萝']
list2 = [1, 2, 3, True, "你好"]
list3 = list1 + list2
print(list3) # ['苹果', '西瓜', '香蕉', '菠萝', 1, 2, 3, True, '你好']
(2)重复输出列表中的元素 使用 * 号
list1 = [1, 2, 3]
list2 = list1 * 3
print(list2) # [1, 2, 3, 1, 2, 3, 1, 2, 3]
(3)判断某个元素是否在列表中,使用 in 或 not in 实现
list1 = [1, 2, 3, 4, 5]
if 3 in list1:
print(True)
else:
print(False)
# 运行结果: True
list1 = [1, 2, 3, 4, 5]
if 8 not in list1:
print(True)
else:
print(False)
# 运行结果: True
列表切片
# 语法: 列表名[起始下标:结束下标:步长]
# 注意:截取的范围包含开始下标对应的元素,但是不包含结束下标对应的元素
(即:包头不包尾)
list1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list1[1:4]) # [1, 2, 3] 截取指定范围的元素
print(list1[2:]) # [2, 3, 4, 5, 6, 7, 8, 9] 若未设置结束下标,会从开始下标一直截取到最后
print(list1[:5]) # [0, 1, 2, 3, 4] 若未设置起始下标,默认从第一个元素开始截取到结束下标对应的位置
print(list1[-3:]) # [7, 8, 9] 下标使用负数情况
print(list1[::-1]) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] 列表反转
向列表中添加元素
(1)append()
向列表中添加单个元素 一般用于尾部添加
list1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list1.append(10)
print(list1) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
(2)extend()
向列表中添加多个元素
追加的元素一般以列表的形式传递
list1 = [0, 1, 2, 3, 4, 5]
list1.extend([ 6, 7, 8, 9])
print(list1) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
(3)insert(插入的位置,插入的元素值) 向列表的某个位置插入元素
list1 = [0, 1, 2, 3, 4, 5]
list1.insert(1,8)
print(list1) # [0, 8, 1, 2, 3, 4, 5]
从列表中删除元素
(1)pop()
# 默认删除列表中的最后一个元素
# 若传递参数,则删除指定下标的元素,返回的是原列表
list1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
list1.pop()
print(list1) # ['a', 'b', 'c', 'd', 'e', 'f']
list1.pop(3)
print(list1) # ['a', 'b', 'c', 'e', 'f']
(2)remove() 传输的参数是删除的元素
list1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
list1.remove('c')
print(list1) # ['a', 'b', 'd', 'e', 'f', 'g']
(3)clear() 清空列表
list1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
list1.clear()
print(list1) # []
列表的翻转和排序
(1)reverse()
翻转原列表中的元素,不会生成新列表
list1 = [5, 7, 2, 9, 7, 0, 1]
list1.reverse()
print(list1) # [1, 0, 7, 9, 2, 7, 5]
(2)sort()
对原列表元素进行排序,默认是升序
list1 = [5, 7, 2, 9, 7, 0, 1]
list1.sort()
print(list1) # [0, 1, 2, 5, 7, 7, 9]
降序排序 ,函数中传入reverse=True
list1 = [5, 7, 2, 9, 7, 0, 1]
list1.sort(reverse=True)
print(list1) # [9, 7, 7, 5, 2, 1, 0]
(3)sorted()
对列表进行排序,默认升序,会将排序的结果生成一个新的列表
list1 = [5, 7, 2, 9, 7, 0, 1]
list2 = sorted(list1)
print(list2) # [0, 1, 2, 5, 7, 7, 9]
降序,需要在sorted()中传入reverse=True
list1 = [5, 7, 2, 9, 7, 0, 1]
list2 = sorted(list1,reverse=True)
print(list2) # [9, 7, 7, 5, 2, 1, 0]
根据元素的长度进行排序
list1 = ['hello', 'haha', 'a', 'jiayougan']
list2 = sorted(list1, key=len)
print(list2) # ['a', 'haha', 'hello', 'jiayougan']
多维列表
list1 = [12, 345, 768, [False, 'hao', ['are', 'you'], 123, 545], True, 'you are pig']
print(list1[2]) # 768
print(list1[3][1]) # hao
print(list1[3][2][1]) # you
列表生成式
# 需求:生成1-10之间的整数的一个列表
# 用range()函数生成一个序列
# 再用list()函数将生成的数转换成列表
list1 = list(range(1, 11))
print(list1) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 需求: 生成列表[4,9,16,25,36,49]
# 方式1:(原始方法)
list1 = [] # 定义一个空列表,用于接收生成的数据
for i in range(2, 8):
list1.append(i ** 2)
print(list1)
# 方法2:通过列表生成式生成
list1 = [i**2 for i in range(2, 8)]
print(list1)
# 需求:使用列表生成式的方式生成1-10之间的奇数
list1 = [i for i in range(1,11,2)] # 步长为2
print(list1) # [1, 3, 5, 7, 9]
# 或者
list1 = [i for i in range(1,11,2) if i % 2 == 1]
print(list1) # [1, 3, 5, 7, 9]
列表生成式中使用双重循环
list1 = [i + j for i in 'xyz' for j in '123']
print(list1) # ['x1', 'x2', 'x3', 'y1', 'y2', 'y3', 'z1', 'z2', 'z3']
# 注意:列表生成式一般用于逻辑简单的列表的生成