总结
一,列表的增删改
1.增 - 添加元素
列表.append(元素) —— 在指定列表的最后,添加指定的元素(注意,不会产生新的列表,而是直接在原列表中添加)
列表.insert(下标,元素)——将指定元素插入到列表中指定下标对应的元素前面
2.删 - 删除元素
- del 列表[下标] ——删除列表中指定下标对应的元素
- 列表.remove(元素)——删除列表中的指定元素
注意:如果元素不在列表中会报错
如果相同的元素有多个,只删最前面那1个
-
列表.pop(下标)
取出列表中指定下标对应的元素,并且返回。
- 列表.pop() —— 取出列表中最后一个元素,并且返回
3.改 - 修改元素的值
列表[下标] = 新元素
将列表中指定下标对应的元素改成新元素
二,列表运算
1.列表加法运算
列表1 + 列表2 ——将两个列表合并成一个新的列表
例:
A = [10,20,30]
B = [100,200]
C = A + B
print© ——[10,20,30,100,200]
2.列表乘法运算
列表*N
或者N*列表
将列表中的元素重复N次产生一个新的列表 (注意:N为正整数)
3.列表比较运算
- 比较是否相等: ==
!=
例:print([10,20]==[10,20]) —— True
print([20,10]==[10,20]) ——False
- 比较大小: > < >= <=
两个列表比较大小,比较的是第一对不相等的相同位置上的元素的大小(相同位置上的元素是一对)
4.in和not in
元素 in 列表 —— 判断列表中是否存在指定的元素
元素 not in 列表 ——判断列表中是否存在指定的元素
例:
print(10 in [10,20,30]) —— True
print(10 in [[10,20],30]) —— False
print([10,20] in [10,20,30]) ——False
三,函数
1.sum(数字序列)
求数字序列中的所有元素的数值和
例:scores = [98,23,56,88,90,70]
result = sum(scores)
print(result)
2.max,min
max(序列) —— 求序列中的最大元素
min(序列) —— 求序列中的最小元素
补充:求最大值的逻辑:
假设第一个元素是最大值保存到变量中,然后依次取出后面的每个元素和保存的最大值的变量进行比较,如果取出的更大,就更新最大值
3.sorted
sorted(序列) —— 将序列中的元素按照从小到大的方式排序,创建一个新的列表并且返回
sorted(序列,reverse=True) —— 将序列中的元素按照从大到小的方式排序,创建一个新的列表并且返回
4.len
len(序列) —— 统计序列中元素的个数
例:
print(len(range(1,100,2))) —— 50
5.list
list(序列) —— 将指定的序列转换成列表(任何序列都可以转换成列表)
例:
result = list(‘abc123’)
print(result) —— [‘a’, ‘b’, ‘c’, ‘1’, ‘2’, ‘3’]
四,列表相关方法
列表.xxx()
1,列表.clear() 清空列表
2,列表.count(元素) 统计列表中指定元素的个数
例:nums = [10,9,89,23,10]
print(nums.count(100)) —— 0
print(nums.count(9)) —— 1
print(nums.count(10)) —— 2
3,列表.extend(序列) 将序列中的元素全部添加到列表中
例:list1 = [10,20]
list1.extend([100,200])
print(list1) —— [10,20,100,200]
4,列表.index(元素) 获取列表中指定元素对应的下标(返回的是从0开始的下标值)
例:nums = [10,9,89,23,10]
print(nums.index(89)) —— 2
print(nums.index(10)) —— 0
5,列表.reverse() 将列表倒序
6,列表.sort() 将列表中的元素从小到大排序
列表.sort(reverse=True) 将列表中的元素从大到小排序
注意:
sorted(序列) 不会修改原序列的顺序,而是创建新的列表(可以用于任何序列)
列表.sort() 是修改原列表中的顺序,并只能用于列表
五,拷贝和直接赋值
需求:已知一个列表,现在需要创建和原列表一模一样的新的列表
nums = [10,20,30,40]
方法:
1,直接赋值
nums2 = nums
2,拷贝
- nums3 = nums*1
- nums4 = nums+[]
- nums5 = nums[:] (切片)
- nums6 = nums.copy()
补充:
Python中的变量保存数据,保存的是数据在内存中的地址(Python中的变量全部都是指针变量)
直接赋值:一个变量直接给另一个变量赋值,赋的是地址,赋值后,两个变量指向的是同一块内存
拷贝:一个变量通过拷贝的方式给另一个变量赋值,会先复制原来变量中的数据,创建一个新的数据,然后将新的数据对应的内存地址给新的变量
六,列表推导式 (快速创建列表的表达式)
1.列表推导式结构1
语法:
[表达式 for 变量 in 序列] —— 先写[],然后写“for循环”,最后在前面加上表达式
让变量去序列中取值,一个一个地取,取完为止,每取一个值,就计算一次表达式的结果,并且将计算结果作为列表中的一个元素
例:将nums中的所有元素乘以2
nums = [10,23,89,67]
result = [x*2 for x in nums] ——最后写表达式
2.列表推导式结构2
语法:
[表达式 for 变量 in 序列 if 条件语句] ——先写[],然后写“for循环”,再在前面加上表达式,最后写条件语句
让变量去序列中取值,一个一个地取,取完为止,每取一个值就判断一次条件是否成立,如果成立就计算表达式的值作为列表中的元素