列表常用操作
- 方法与函数的区别
- 增
- 删
- 改
- 查
- 计
- 序
方法与函数的区别:与函数功能一样,只不过写的地方不一样,就叫不一样的名字,使用方式不一样。
- 函数:函数名(参数)
- 方法:类对象 . 方法名(参数),多了一个点
增:第1类操作
单个末尾追加:.append(元素)
功能:列表最后追加元素
语法:列表.append(元素)
示例:
a = [3,'aaa',True]
a.append('bbb')
print(a) #[3, 'aaa', True, 'bbb']
定点插入:.insert(下标,元素)
功能:插入元素
语法:列表.insert(下标,元素)
示例:
a = [3,'aaa',True]
a.insert(2,'bbb') # 在第2个元素下插入,会把第2个元推到后面。
print(a) # [3, 'aaa', 'bbb', True]
a = [3,'aaa',True]
b = ['bbb','ddd',5]
a.insert(1,b) # 把列表插入,也当一个元素插入。
print(a) # [3, ['bbb', 'ddd', 5], 'aaa', True]
批量追加:.extend(元素)
功能:追加一批数据,至少添加一个元素
语法:列表.extend(容器)
示例
a = [3,'aaa',True]
b = ['bbb','ddd',5]
a.extend(b) # 把 b 列表 每一个元素插入进来,依次放到最后。
print(a) # [3, 'aaa', True, 'bbb', 'ddd', 5]
切片:在任何位置添加至少一个元素
语法:列表[ 下标 : ] = 列表
示例:
a = [3,'aaa',True]
b = ['bbb','ccc','ddd']
a[2:] = b
print(a) # [3, 'aaa', 'bbb', 'ccc', 'ddd']
'----------------------------------------------------------'
a = [3,'aaa',True]
b = ['bbb','ccc','ddd']
a[2:] = 'f'
print(a) # [3, 'aaa', 'f']
'----------------------------------------------------------'
a = [3,'aaa',True]
b = ['bbb','ccc','ddd']
a[2:] = 'fffff'
print(a) # [3, 'aaa', 'f', 'f', 'f', 'f', 'f']
+:拼接
语法:列表 + 列表
示例:
l = [1,2,3]
a = ['a','b','c']
c = l +a
print(c) # [1, 2, 3, 'a', 'b', 'c']
*:相乘
语法:列表 * 数字
示例:
l = [1,2,3]
x = 2
c = l * x
print(c) # [1, 2, 3, 1, 2, 3]
删:第2类操作
删除指定下标元素:del 列表[下标]
功能:删除指定下标元素
语法:
- del 列表[下标]
- del 列表[下标:下标]
- del 列表
示例:
a = [10,20,30,40,50,60]
del a[2] # 删除列表 a 的第 2 号值 【30】
print(a) # [10, 20, 40, 50, 60]
a = [10,20,30,40,50,60]
del a[2:] # 删除列表 a 的第 2 号之后所有值 【30,40,50,60】
print(a) # [10, 20]
a = [10,20,30,40,50,60]
del a[::2] # 每间隔2个删除全部【10,30,50】
print(a) # [20, 40, 60]
a = [10,20,30,40,50,60]
del a[::-2] # 从后面每间隔2个删除全部【60,40,20】
print(a) # [10, 30, 50]
a = [10,20,30,40,50,60]
del a # 删除列表,删除这个对象。
print(a) # 出错:NameError
删除最后一个或指定下标的元素,并返回此元素:.pop(下标):
功能:删除并返回元素,默认移除最后一个,或指定下标元素。
索引不存在:报错:IndexError
语法:
列表.pop( )
示例:
a = [3,'aaa','bbb']
b = a.pop()
print(b)
print(a)
列表.pop(下标)
a = [3,'aaa','bbb']
b = a.pop(1)
print(b) # aaa
print(a) # [3, 'bbb']
删除第一匹配的元素:.remove(元素)
功能:删除一个元素,重复元素也只删除第一个,不存在,报错 valueError
语法:列表.remove(元素)
示例:
a = [2,True,'aaa',3,True]
a.remove(True)
print(a) # [2, 'aaa', 3, True]
# 只删除啦第一个匹配值:True ,第二个还在。
清空列表:.clear()
功能:清空列表
语法:列表.clear()
示例:
a = [2,True,'aaa',3,True]
a.clear()
print(a) # [ ] 是个空的值
[ ] :切片
功能:删除一个或一批元素
语法:列表[m:n]
示例:
a = [10,20,30,40,50,60]
print(a) # [10, 20, 30, 40, 50, 60]
a[2:3] = [] # 删除1个元素:第2个:【30】
print(a) #[10, 20, 40, 50, 60]
a = [10,20,30,40,50,60]
print(a) # [10, 20, 30, 40, 50, 60]
a[2:] = [] # 删除1堆元素:第2个之后所有:【30,40,50,60】
print(a) # [10, 20]
改:第3类操作
[ ] :切片:修改一个或一批元素。
功能:修改指定索引元素
语法:列表[下标] = 值
示例:
a = [10,20,30,40,50,60]
a[2] = 100
print(a) # [10, 20, 100, 40, 50, 60]
a = [10,20,30,40,50,60]
a[2:5] = [100] # 修改成一个值
print(a) # [10, 20, 100, 60]
a = [10,20,30,40,50,60]
a[2:5] = [100,200,300,400] # 修改成一批值
print(a) # [10, 20, 100, 200, 300, 400, 60]
查:第4类操作
查找指定元素下标:.index(元素)
功能:查找某元素的下标
语法:列表.index(元素,[ 开始下标,结束下标])
示例:
a = [3,'aaa',True]
print(a.index('aaa')) # 在第1个位置找到。
a = ['a',2,'a','aaa','a',True]
print(a.index('a',3,5)) # 从第3个位置找,在第4个位置找到。
a = [3,'aaa',True]
print(a.index('aa')) # 找不到:报错
# ValueError: 'aa' is not in list
查找索引和值:enumerate( x )
功能:获取列表索引和对应的元素
示例:
list1 = ['a','b','c','d','e']
for x,y in enumerate(list1):
print(x+1,y)
'''
1 a
2 b
3 c
4 d
5 e
'''
in , ont in :成员判断
功能:判断元素是否存在
语法:
- 元素 in 列表名
- 元素 not in 列表名
示例:
a = ['a',2,'a','aaa','a',True]
print('b' in a) # 字母 'b' 在列表 a 里吗?不在为:False
print('a' in a) # 字母 'a' 在列表 a 里吗?在为:True
[ ] :切片
功能:获取单个元素,或一批元素。
语法:列表[下标] = 值
示例:
a = ['a',2,'a','aaa','a',True]
print(a[2]) # 查找第2个元素:'a'
a = ['a',2,'a','aaa','a',True]
print(a[2:]) # 查找第2个之后所有元素:['a', 'aaa', 'a', True]
计:第5类操作
某元素数量:.count(元素)
功能:统计某元素的个数
语法:列表.count(元素)
示例:
a = [2,True,'aaa',3,True]
x = a.count(True)
print(x) # 有2个 True 元素
列表元素总数:len(列表)
功能:统计列表总共有多少元素
语法:len(列表)
示例:
a = [2,True,'aaa',3,True]
x = len(a)
print(x) # 共有 5 个元素
示列表求和:sum( )
示例:
a = list(range(10))
print(a) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(sum(a)) # 和是:45
序:第6类操作
. sort( ):排序
功能:指定数据排序,原位排序,不产生新的列表
语法:列表 . sort ( key = 函数[参数] , reverse = [ False | True ] )
reverse:
- False:从小到大,【默认】
- True:从大小
示例:
a = [40,10,30,20,50,60]
a.sort()
print(a) # [10, 20, 30, 40, 50, 60] 升序
a = [40,10,30,20,50,60]
a.sort(reverse=True)
print(a) # [60, 50, 40, 30, 20, 10] 降序
字母排序:
list1 = ['a','A','B','b','c']
list1.sort()
print(list1) # ['A', 'B', 'a', 'b', 'c'] 先大写再小写,再排序
list1 = ['a','A','B','b','c']
list1.sort(key=str.lower)
print(list1) # ['a', 'A', 'B', 'b', 'c'] 忽略字母大小写:
内置函数sorted():
功能:列表排序,产生新的列表
语法:sorted(列表 [ , reverse = True | False ] )
示例:
a = [40,10,30,20,50,60]
b = sorted(a)
print(a) # [40, 10, 30, 20, 50, 60] 原数据
print(b) # [10, 20, 30, 40, 50, 60] 升序后,默认:升序
a = [40,10,30,20,50,60]
b = sorted(a,reverse=True)
print(a,id(a)) # [40, 10, 30, 20, 50, 60] 2638186008832 原数据及地址标识
print(b,id(b)) # [60, 50, 40, 30, 20, 10] 2638186010816 降序后地址标识变化