day07列表相关操作和相关函数
列表相关操作
一 数学运算符 :+ 、 *
a 列表1+列表2 将两个列表合并成一个新的列表
b 列表N、N列表 将列表中元素重复N产生一个新的列表
# a. 列表1 + 列表2
list1 = [10, 20, 30]
list2 = [100, 200]
result = list1 + list2
print(result) # [10, 20, 30, 100, 200]
# b. 列表 * N、 N * 列表
# [10, 20, 30] * 2 -> [10, 20, 30] + [10, 20, 30] -> [10, 20, 30, 10, 20, 30]
print(list1 * 3) # [10, 20, 30, 10, 20, 30, 10, 20, 30]
二 比较运算:>\<\>=<=
# a. 比较相等:==、!=
list1 = [10, 20, 30]
print(list1 == [10, 20, 30]) # True
print(list1 == [20, 10, 30]) # False
# b. 比较大小:>、<、>=、<=
# 两个列表比较大小,比较的是第一对不相等的元素的大小
list1 = [10, 20, 30]
list2 = [1, 1000, 30000, 40000]
print(list1 > list2) # True
in 和 not in
元素 in 列表 判断指定列表中是否存在指定元素
元素 not in 列表 判断指定列表中是否不存在指定元素
print(10 in [10, 20, 30]) # True
print(100 not in [10, 20, 30]) # True
print([10, 20] in [10, 20, 30]) # False
print([10, 20] in [[10, 20], 30]) # True
三 相关函数(系统函数):sum 、max、min、len、sorted、list
sum(列表) - 求列表中所有元素的和(列表必须是数字列表)
scores = [18, 90, 67, 8, 82]
print(sum(scores))
1+2+3+...+100
print(sum(range(1, 101)))
max(列表)/min(列表) - 求列表中所有元素的最大值/最小值
scores = [18, 90, 67, 8, 82]
print(max(scores))
print(min(scores))
sorted
sorted(列表) 将列表中的元素从下到大排序,产生一个新的列表
sorted(列表,reverse=True) 将列表中胡元素从大到小排序,产生一个新的列表
scores = [18, 90, 67, 8, 82]
new_scores = sorted(scores)
print(new_scores) # [8, 18, 67, 82, 90]
scores = [18, 90, 67, 8, 82]
new_scores = sorted(scores, reverse=True)
print(new_scores) # [90, 82, 67, 18, 8]
list 将其他数据转换成列表
list(数据) 将指定数据转换成列表。(所有的序列都可以转换成列表;将其他序列转换成列表的时候直接将序列的元素作为列表的元素)
result = list('abc')
print(result) # ['a', 'b', 'c']
result = list(range(5))
print(result) # [0, 1, 2, 3, 4]
四 列表相关方法
1 clear
列表.clear() 清空列表
nums = [10, 89, 23, 5]
nums.clear()
print(nums) # []
2 copy
列表.copy() 复制指定列表产生一个一样的新列表,将新的列表返回
nums = [10, 89, 23, 5]
nums2 = nums.copy()
3 count
列表.count(元素) 统计列表中指定元素的个数
nums = [23, 89, 78, 23, 10, 23, 9, 23, 10]
result = nums.count(23)
print(result) # 4
4 extend
列表.extend(序列) 将序列中所有的元素都添加到列表中
list1 = [10, 20, 30]
list1.extend([100, 200])
print(list1) # [10, 20, 30, 100, 200]
5 index
列表.index(元素) 获取元素在列表中对应下标;如果元素不存在会报错;如果有多个,只返回最前那个元素的下标
list1 = [12, 89, 7, 12, 65, 23, 89]
print(list1.index(12)) # 0
print(list1.index(65)) # 3
# print(list1.index(120)) # 报错! ValueError: 120 is not in list
print(list1.index(89)) # 1
6 reverse
列表.reverse() 倒序
list1 = [12, 89, 7, 12, 65, 23, 89]
list1.reverse()
print(list1) # [89, 23, 65, 12, 7, 89, 12]
list1 = [12, 89, 7, 12, 65, 23, 89]
result = list1[::-1]
print(list1, result) # [12, 89, 7, 12, 65, 23, 89] [89, 23, 65, 12, 7, 89, 12]
7 sort
列表.sort() 将列表元素从小到大排序
列表.sort(reverse=True) 将列表元素从大到小排序
list1 = [12, 89, 7, 12, 65, 23, 89]
list1.sort()
print(list1) # [7, 12, 12, 23, 65, 89, 89]
五 列表推导式
列表推导式 创建列表的表达式,主要用于对元素进行变换和筛选
结构1:
[表达式 for 变量 in 序列]
原理:创建一个列表(让变量去序列中取值,一个一个地取,取一个值就计算一次表达式的结果并且将计算结果作为列表元素)
作用: 将原序列中的元素按照指定规则(表达式)进行统一变换得到一个列表
result = [x*2 for x in range(5)]
print(result) # [0, 2, 4, 6, 8]
result = [x % 2 == 0 for x in range(5)]
# x=0 -> x % 2 == 0 -> 0 % 2 == 0 -> True
结构2
[表达式 for 变量 in 序列 if 条件语句]
原理:让变量去序列中取值,一个一个地取,取一个值就判断一次条件语句是否成立,如果成立才计算表达式的结果,并且将结果作为列表的元素
作用:提取序列中满足条件的元素
result = [x*10 for x in range(10, 30) if x % 2]
print(result) # [110, 130, 150, ..., 290]
result = [x for x in range(10, 30) if x % 3 == 0]
print(result) # [12, 15, 18,...,27]
六 认识元组
认识元组(tuple)
1是容器;将()作为容器胡标志里面多个元素用逗号隔开:(元素1,元素2,元素3,…)
不可变(不支持增删改);有序的
2空元组 t = ()
3 注意: 单个元素的元组:必须在唯一的元素后加逗号
t2 = (20,)
print(t2, type(t2), len(t2))
t3 = (19, 20, 34)
4 元组就是不可变的列表 ,列表中和增删改无关的操作,元组都支持