1.列表的增删改
1.增 - 添加元素
# 1)列表.append(元素) - 在列表的最后添加指定的元素
# 2)列表.insert(下标, 元素) - 在指定下标对应的元素前插入指定元素
games = ['英雄联盟', '王者荣耀', '吃鸡']
print(games) # ['英雄联盟', '王者荣耀', '吃鸡']
games.append('部落冲突')
print(games) # ['英雄联盟', '王者荣耀', '吃鸡', '部落冲突']
games = ['英雄联盟', '王者荣耀', '吃鸡']
games.insert(-1, '部落冲突')
print(games) # ['英雄联盟', '王者荣耀', '部落冲突', '吃鸡']
# 练习:提前nums中所以的偶数
nums = [43, 60, 88, 91, 33, 56, 70, 21]
a = []
for x in nums:
if x % 2 == 0:
a.append(x)
print(a) # [60, 88, 56, 70]
2.删
# 1)del 列表[下标] - 删除列表中指定下标对应的元素
games = ['英雄联盟', '王者荣耀', '吃鸡', '部落冲突', '开心消消乐']
print(games)
del games[2]
print(games) # ['英雄联盟', '王者荣耀', '部落冲突', '开心消消乐']
# 2)列表.remove(元素) - 删除列表中第一个指定的元素
games = ['英雄联盟', '王者荣耀', '吃鸡', '部落冲突', '开心消消乐']
games.remove('吃鸡')
print(games) # ['英雄联盟', '王者荣耀', '部落冲突', '开心消消乐']
games = ['英雄联盟', '王者荣耀', '吃鸡', '部落冲突', '开心消消乐', '吃鸡']
games.remove('吃鸡')
print(games) # ['英雄联盟', '王者荣耀', '部落冲突', '开心消消乐', '吃鸡']
# 3)
# 列表.pop() - 取出列表最后一个元素,并返回
# 列表.pop(下标) - 取出列表指定下标对应的元素,并返回
games = ['英雄联盟', '王者荣耀', '吃鸡', '部落冲突', '开心消消乐']
result = games.pop()
print(games) # ['英雄联盟', '王者荣耀', '吃鸡', '部落冲突']
print(games, result) # ['英雄联盟', '王者荣耀', '吃鸡', '部落冲突'] 开心消消乐
3.改
# 列表[下标] = 新元素 - 修改列表中指定下标对应的元素为新元素
games = ['英雄联盟', '王者荣耀', '吃鸡', '部落冲突', '开心消消乐']
games[1] = '红色警戒'
print(games) # ['英雄联盟', '红色警戒', '吃鸡', '部落冲突', '开心消消乐']
2.列表的相关操作
1.列表的加法和乘法运算
# 1)加法运算:列表1 + 列表2 - 将两个列表合并创建一个新的列表
nums1 = [10, 20, 30]
nums2 = [11, 22]
result = nums1 + nums2
print(result) # [10, 20, 30, 11, 22]
# 2)乘法运算:列表 * N 、N * 列表 - 重复列表中的元素N次产生一个新的列表
print(nums2 * 3) # [11, 22, 11, 22, 11, 22]
2.列表的比较运算
# 1)比较是否相等(==、!=)
print(nums1 == [10, 20, 30]) # True
print(nums1 == [10, 30, 20]) # False
print([10, 20] == 'abc') # False
# 2)比较大小(>、<、>=、<=)
# 两个列表比较大小比较的是第一对不相等的元素的大小(相同位置上的元素叫一对)
print([1, 100, 200, 300, 40] > [2, 3]) # False
print([3, 100, 200, 300, 40] > [2, 3]) # True
print([2, 1, 200, 300, 40] > [2, 3]) # False
print([10, 20, 35, 32421] > [10, 20, 30, 41317]) # True
3. in 和 not in
# 元素 in 列表 - 判断指定列表中是否存在指定元素
# 元素 not in 列表 - 判断指定列表中是否不存在指定元素
nums1 = [10, 20, 30]
print(10 in nums1) # True
print(1 in nums1) # False
print([10, 20] in nums1) # False
# 练习:将nums中重复的元素去掉
nums = [10, 20, 10, 30, 20, 10, 40]
a = []
for x in nums:
if x not in a:
a.append(x)
print(a)
3.列表的相关函数
系统提供的和序列相关的常用函数:sum、max、min、sorted(排序)、len、list
1.求和函数 - sum
# sum(数字序列) - 求数字序列中所以元素的和
scores = [89, 90, 66, 70, 56]
print(sum(scores)) # 371
2. max、min
# max(序列) - 求序列中的最大的元素
# min(序列) - 求序列中的最小的元素
print(max(scores)) # 90
print(min(scores)) # 56
3.排序
# 1)sorted(序列) - 将系列中的元素从小到大排序,产生一个新的列表(不会修改原序列元素的顺序)
scores = [89, 90, 66, 70, 56]
new_scores = sorted(scores)
print(new_scores) # [56, 66, 70, 89, 90]
# 2)sorted(序列, reverse=True) - 将系列中的元素从大到小排序,产生一个新的列表(不会修改原序列元素的顺序)
scores = [89, 90, 66, 70, 56]
new_scores = sorted(scores, reverse=True)
print(new_scores) # [90, 89, 70, 66, 56]
4. len(序列)
获取序列的长度(序列中元素的个数)
scores = [89, 90, 66, 70, 56]
print(len(scores)) # 5
5. list(数据)
将指定的数据转换成列表(只有序列才能转换成列表),转换的时候直接将序列中的元素变成列表中的元素
print(list('abc')) # ['a', 'b', 'c']
print(list(range(3))) # [0, 1, 2]
4.列表相关方法
列表相关方法的使用:列表.xxx()
1.列表.clear() - 清空列表列表
nums = [89, 23, 45, 96, 79]
nums.clear()
print(nums) # []
2.列表.copy() - 复制原列表产生一个一模一样的新列表
nums = [89, 23, 45, 96, 79]
result = nums.copy()
print(result) # [89, 23, 45, 96, 79]
A = [10, 20, 30]
# 用一个变量直接给另外一个变量赋值,赋的其实是内存地址
B = A
# 赋值原数据产生一个一模一样的新的数据,然后将新的数据的地址赋给新的变量
C = A.copy()
print(A) # [10, 20, 30]
print(B) # [10, 20, 30]
print(C) # [10, 20, 30]
A.append(100)
print(A) # [10, 20, 30, 100]
print(B) # [10, 20, 30, 100]
print(C) # [10, 20, 30]
3.列表.count(元素) - 统计列表中指定元素的个数
nums = [89, 78, 90, 22, 34, 55, 78, 60, 78]
print(nums.count(60)) # 1
print(nums.count(100)) # 0
print(nums.count(78)) # 3
4.列表.extend(序列) - 将序列中的所有元素添加到列表后面中
list1 = [10, 20, 30]
list1.extend([100, 200, 300])
print(list1) # [10, 20, 30, 100, 200, 300]
list1 = [10, 20, 30]
list1.extend('abc')
print(list1) # [10, 20, 30, 'a', 'b', 'c']
list1 = [10, 20, 30]
list1.append('abc')
print(list1) # [10, 20, 30, 'abc']
5.列表.index(元素) - 获取指定元素在列表中的下标(返回的是从0开始的下标值)
nums = [89, 78, 90, 22, 34, 55, 78, 60, 78]
print(nums.index(90)) # 2
print(nums.index(78)) # 1
# print(nums.index(100)) # 报错! ValueError: 100 is not in list
# 78, 90, 60
for x in [78, 90, 60]:
print(x, nums.index(x))
6.列表.reverse() - 将列表逆序
nums = [78, 90, 60]
nums.reverse()
print(nums) # [60, 90, 78]
7.排序 - 列表.sort()
# 列表.sort() - 将列表中的元素从小到大排序(直接修改原列表元素的顺序)
# 列表.sort(reverse=True) - 将列表中的元素从大到小排序(直接修改原列表元素的顺序)
nums = [89, 78, 90, 22, 34, 55, 78, 60, 78]
nums.sort()
print(nums) # [22, 34, 55, 60, 78, 78, 78, 89, 90]
nums = [89, 78, 90, 22, 34, 55, 78, 60, 78]
new_nums = sorted(nums)
print(new_nums) # [22, 34, 55, 60, 78, 78, 78, 89, 90]
5.列表推导式
列表推导式:一种快速创建列表的表达式
1.结构1
"""
[表达式 for 变量 in 序列]
让变量去序列中取值,一个一个的取,取完为止,每取一个值就计算一次表达式的结果,并且将计算结果作为列表的一个元素
"""
list1 = [10 for x in range(10)]
print(list1) # [10, 10, 10, 10, 10, 10, 10, 10, 10, 10]
list2 = [x*2 for x in range(10)]
print(list2) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
# 练习1:利用列表推导式将nums中所有的元素都乘以10
nums = [12, 3, 56, 8]
# [120, 30, 560, 80]
nums1 = [x*10 for x in nums]
print(nums1)
# 练习2:利用列表推导式提取nums中所有元素的个位数
nums = [12, 345, 78, 90]
# [2, 5, 8, 0]
nums2 = [x % 10 for x in nums]
print(nums2)
2.结构2
"""
[表达式 for 变量 in 序列]
让变量去序列中取值,一个一个的取,取完为止,每取一个值就计算一次表达式的结果,并且将计算结果作为列表的一个元素
"""
list1 = [10 for x in range(10)]
print(list1) # [10, 10, 10, 10, 10, 10, 10, 10, 10, 10]
list2 = [x*2 for x in range(10)]
print(list2) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
# 练习1:利用列表推导式将nums中所有的元素都乘以10
nums = [12, 3, 56, 8]
# [120, 30, 560, 80]
nums1 = [x*10 for x in nums]
print(nums1)
# 练习2:利用列表推导式提取nums中所有元素的个位数
nums = [12, 345, 78, 90]
# [2, 5, 8, 0]
nums2 = [x % 10 for x in nums]
print(nums2)