列表相关操作
1.数学运算符:+、*
- 列表1 + 列表2 - 将两个列表中的元素合并产生一个新的列表
例如:[x, y, z] + [m, n] -> [x, y, z, m, n] - 列表 * N / N * 列表 - 列表中的元素重复N次产生一个新的列表
nums1 = [10, 20, 30]
nums2 = [1, 2]
print(nums1+nums2)
print(nums1 * 2)
print(nums2 * 4)
2.比较运算符:==、!=、>、<、<=、>=
- ==、!=
print([1, 2, 3] == [1, 2, 3]) # True
print([1, 2, 3] == [3, 2, 1]) # False
- <、>、<=、>=
print([1, 100, 200, 300] > [10, 20]) # False
print([1, 100, 1000] > [1, 200, 0]) # False
3.in 和 not in
- 元素 in 列表 - 判断列表中是否存在指定元素
- 元素 not in 列表 - 判断列表中是否不存在指定元素
print(10 in [10, 20, 30]) # True
print(100 in [10, 20, 30]) # False
print([10, 20] in [10, 20, 30]) # False
练习:删除分数列表中不及格的分数
方法一:
scores = [90, 89, 23, 67, 99, 96, 56, 78, 91, 45]
new_scores = []
for i in scores:
if i >= 60:
new_scores.append(i)
print(new_scores)
方法二:
scores = [90, 89, 23, 67, 99, 96, 56, 78, 91, 45]
for i in scores:
if i < 60:
scores.remove(i)
else:
continue
print(scores)
列表相关函数
1.max和min
- max(序列) - 获取序列中元素的最大值
- min(序列) - 获取序列中元素的最小值
注意:序列中的元素之间必须支持比较大小的操作
nums = [78, 23, -9, 34, 89, 54]
print(max(nums))
print(min(nums))
2.最大值、最小值的套路
nums = [78, 23, -9, 34, 89, 54]
max1 = nums[0]
for i in nums[1:]:
if i > max1:
max1 = i
print(max1)
nums = [78, 23, -9, 34, 89, 54]
min1 = nums[0]
for i in nums[1:]:
if min1 > i:
min1 = i
print(min1)
3.sum - 求数字和
sum(数字序列) - 计算序列中所有元素的和
nums = [78, 23, -9, 34, 89, 54]
print(sum(nums))
4.sorted
- sorted(序列) - 将序列中的元素升序排序(从小到大),产生一个新的列表
- sorted(序列, reverse=True) - 将序列中的元素降序排列(从大到小),产生一个新的列表
nums = [78, 23, -9, 34, 89, 54]
new_nums = sorted(nums)
print(new_nums)
print(nums)
new_nums = sorted(nums, reverse=True)
print(new_nums)
5.len - 统计元素个数
- len(序列)
nums = [78, 23, -9, 34, 89, 54]
print(len(nums))
print(len('abc'))
6.list
- list(序列) - 将指定数据转换成列表(所有的序列都可以转换成列表;是将序列中的元素作为列表的元素)
print(list('abc123'))
print(list(range(3)))
7.enumerate
for 变量1, 变量2 in enumerate(列表):
变量1是每个元素的下标
变量2是每个元素
[10, 20, 30] -> [(0, 10), (1, 20), (2, 30)]
nums = [78, 23, -9, 34, 89, 54]
for index, item in enumerate(nums):
print(index, item)
sep = [10, 20, 30]
for i in sep:
print(i)
sep = [[10, 20, 30], [100, 200, 300], [300, 400, 500]]
for x, y, z in sep:
print(x, y, z)
列表相关方法
1.列表.clear() - 清空列表
nums = [20, 99, 78, 'abc']
nums.clear()
print(nums) # []
2.列表.copy() - 复制原列表产生一个一模一样的新列表
如果直接用一个变量给另一个变量赋值,赋的是地址。复制后两个变量指向的是同一个数据
list1 = [20, 90, 78, 'abc']
list2 = list1.copy()
print(id(list1), id(list2))
list3 = list1
print(id(list1), id(list3))
3.列表.count(元素) - 统计指定元素在列表中出现的次数
nums = [10, 23, 0, 12, 10, 34, 23, 23, 50]
print(nums.count(10)) # 2
print(nums.count(23)) # 3
4.列表.extend(序列) - 将序列中的元素全部添加到列表中
nums = [100, 200]
scores = [90, 89, 78, 87, 99, 23]
nums.extend(scores)
nums.extend('abc')
nums.extend(range(3))
print(nums)
5.列表.index(元素) - 获取元素的下标值(0开始的下标值)
注意:如果元素不存在会报错,如果元素有多个,则返回最前面那一个元素
names = ['小明', '张三', '李四', '小明']
print(names.index('李四')) # 2
print(names.index('小明')) # 0
6. 列表.reverse() - 将列表中的元素逆序
names = ['小明', '张三', '李四']
names.reverse()
print(names)
7. 列表.sort()
将列表中的元素升序排序(直接修改原列表中元素的顺序,不会产生新的列表)
列表.(reverse=True) - 将列表中的元素降序排序(直接修改原列表中元素的顺序,不会产生新的列表)
nums = [10, 23, 0, 12, 10, 34, 23, 23, 50]
nums.sort()
print(nums)
列表推导式(重要)
创建列表的快捷方式
- 语法1:(将序列中的元素按照统一的规则整体交换)
[表达式 for 变量 in 序列]
list1 = [10 for i in range(3)]
print(list1)
list2 = [i for i in range(3)]
print(list2)
list3 = [i*10+2 for i in range(3)]
print(list3)
练习:将nums中所有的元素乘以10,产生一个新的列表
nums = [12, 33, 7, 9]
new_nums = [i*10 for i in nums]
print(new_nums)
练习:把所有元素的个位数提取出来
nums = [10, 23, 50, 12, 10, 34, 23, 23, 50]
new_nums = [i%10 for i in nums]
print(new_nums)
- 语法2:(对序列中的元素进行筛选/删除)
[表达式 for 变量 in 序列 if 条件语句]
练习:输出奇数
nums = [12, 33, 7, 9]
list_1 = [i for i in nums if i % 2]
print(list_1)
练习:利用列表推导式删除scores中小于60的分数
scores = [89, 34, 56, 90, 56, 78, 99]
new_scores = [i for i in scores if i >= 60]
print(new_scores)
- 语法3:
[三目运算符 for 变量 in 序列]
- 补充:三目运算符
Python的三目运算符 - if else
值1 if 表达式 else 值2 - 如果表达式的值为True,整个运算的结果是值1, 否则是值2
练习:利用列表推导式将nums中所有的偶数除以2,所有奇数乘以2
nums = [20, 34, 33, 6, 15, 7, 20]
new_nums = [i*2 if i % 2 else i//2 for i in nums]
print(new_nums)
练习:偶数除以2,奇数不变
nums = [20, 34, 33, 6, 15, 7, 20]
new_nums = [i if i % 2 else i//2 for i in nums]
print(new_nums)