python_07 列表相关操作 、函数、相关方法、推导式
时间:2023-11-28 16:07:02
列表相关操作 、函数、相关方法、推导式
1.数学运算: 、*
列表1 列表2 — 将列表1 将列表2中的元素合并成新列表
列表 * N、N * 列表 — N将指定列表合并成新列表(列表中的元素重复N次以产生新列表)
list1=[10,20,30] list2=[100,200] result = list1 list2 print(result) #[10, 20, 30, 100, 200] print(list1*3) #[10, 20, 30, 10, 20, 30, 10, 20, 30]
2、比较运算符:< 、 >、 <= 、 >= 、 == 、 !=
1)比较相等: == 、 !=
列表有序数列,顺序不同,结果也不同
print([10,20,30]==[10,30,20]) False print([10,20,30]==[10,20,30]) True
2)比较大小 < 、>、 >=、 <=
两个列表比较大小,比较第一对不相等元素的大小
list1 = [20,300,400,500] list2 = [21,2] print(list1 > list2) #False print([10,3,300,400]<[10,4,-100]) #True
3、in 和 not in
元素 in 列表 —判断列表中是否存在指定元素
元素 not in 列表 — 判断列表中是否不存在指定元素
1)练习:已知一个列表保存了多个学生的姓名,要求去掉列表中重复的名字
例如:names = [‘小明’, ‘张三’, ‘李四’, ‘张三’, ‘张三’, ‘小明’, ‘王五’, ‘王五’]
去重后:names = [‘小明’, ‘张三’, ‘李四’, ‘王五’]
print(10 in [[10,20],30]) False
print(10 in [10,20,30]) True
names = ['小明', '张三', '李四', '张三', '张三', '小明', '王五', '王五']
new_names=[]
for i in names:
if i not in new_names:
new_names.append(i)
print(new_names)
['小明', '张三', '李四', '王五']
for i in range(len(names)):
last_name=names.pop(-1)
if last_name not in names:
names.insert(0,last_name)
print(names)
['小明', '张三', '李四', '王五']
2)练习:提取两个列表的公共元素,产生一个新的列表
练习:提取两个列表的公共元素,产生一个新的列表
A = [10, 23, 89, 67, 10, 20]
B = [78, 90, 23, 88, 10] # 公共元素:[10, 23]
C = []
for i in A:
if i in B and i not in C :
C.append(i)
print(C)
4、列表相关函数
1、sum(列表)
—求列表中所有的元素的和(要求列表中的所有的元素必须是数字)
scores = [29,34,8.9,98,99]
print(sum(scores))
2、max \ min
max (列表) 求列表中值最大的元素
max (数据1,数据2,数据3…)求多个数据中的最大值
scores = [29,34,8.9,98,99]
print(max(scores)) 99
print(min(scores)) 8.9
a=10
b=20
c=30
print(max(a,b,c))
print(min(a,b,c))
3、 sorted(列表)
Sorted —将列表中的所有的元素从小到大排序,产生一个新的列表(不会修改原列表)
sorted(列表,reverse = True) — 将列表中的所以元素从大到小排序,产生一个新的列表(不会修改原列表)
scores = [29,34,8.9,98,99,72]
new_scores=sorted(scores)
print(new_scores)
new_scores2=sorted(scores,reverse=True)
print(new_scores2)
4、list(数据)
将指定数据转换成列表(数据必须是容器型数据类型的数据)
所以的序列都可以转换成列表;转换的时候将序列中的元素作为列表的元素~
print(list("abc"))
print(list(range(3)))
5、方法的使用方式: xxx**.**xxx ( )
列表相关方法:列表**.**xxx()
1、列表.clear ( ) — 清空列表
list1 = [10, 23, 39, 41, 52, 55, 80]
list1.clear()
print(list1)
2、列表**.**copy ( ) —复制指定的列表产生一个一模一样的新列表并且返回
列表[ : ] == 列表.copy == 列表*1 == 列表 + []
A=[29,78,9,23]
B=A
C=A.copy()
A.append(1000)
print("A",A) # A [29, 78, 9, 23, 1000]
print("B",B) # B [29, 78, 9, 23, 1000]
print("C",C) # C [29, 78, 9, 23]
print(id(A)) # 2609869214784
print(id(B)) # 2609869214784
print(id(C)) # 2609869214912
3、列表.count(元素)
—统计列表中指定元素的个数
A = [29,78,9,23,100,9]
print(A.count(9)) # 2
4、列表1**.**extend(列表2 )
—将序列中的元素全部添加到列表的最后
A = [29,78,9,23]
print(A)
A.extend([10,20])
print(A)
A.append("abc")
print(A)
A.extend("abc")
print(A)
[29, 78, 9, 23]
[29, 78, 9, 23, 10, 20]
[29, 78, 9, 23, 10, 20, 'abc']
[29, 78, 9, 23, 10, 20, 'abc', 'a', 'b', 'c']
5、列表.index(元素)
— 获取指定元素在列表中的下标值(0开始的下标值)
A = [29,78,9,23,78]
print(A.index(78))
print(A.index(9))
6、列表.reverse() —将列表倒叙
A = [29, 78, 9, 23, 78]
A.reverse()
print(A) #[78, 23, 9, 78, 29]
7、列表.sort()
列表.sort ( revere = True )
A = [29, 78, 9, 23, 78,9]
A.sort()
print(A)
# [9, 9, 23, 29, 78, 78]
6、列表表达式 — 快速创建列表的表达式
1、结构1: [ 表达式 for 变量 in 序列]
功能:创建列表,列表中的元素就让变量去序列中取值,取一个值就计算一次表达式的结果,这个结果就是列表的元素
a=[i*2 for i in range(5)]
print(a) # [0, 2, 4, 6, 8]
练习1:提取num 中所有元素的个位数
nums=[18,34,661,90,75]
b=[i%10 for i in nums] # [8,4,1,0,5]
print(b)
[8, 4, 1, 0, 5]
2、结构2:[ 表达式 for 变量 in 序列 if 条件语句 ]
创建一个列表,列表的元素就是变量去序列中取值,取一个值判断一次条件是否成立,成立就计算一次表达式结果,并且将结果作为列表的元素
C=[i for i in range(10) if i % 2]
print(c)
[1, 3, 5, 7, 9]
nums=[18,34,661,90,75]
d = [ i%10 for i in nums if i % 2 == 0]
print(d)
# [8, 4, 0]