说明:掌握python列表的操作,掌握python列表生成式如何操作,掌握元组的操作。
1.对列表的操作有哪些?
万物皆对象,列表也是一个对象
1.创建
a = list() or a = [] 空列表
b = [1,2,3,4] 设置默认值列表
a = b.copy() 浅拷贝
其他类型的转换:如:list(tuple) list(range()) list(str)
2.查看
2.1 使用索引的方式b[0],列表索引有两种值,从左向右0,1,2。。。,从右往左,-1,-2
2.2 使用切片进行获取返回的是列表:格式 列表[开头,结尾,步长]
2.3 a.index(值),有返回第一个索引,没有就报错
2.4 a.count(值),查看有几个值,没有就是0
2.5 判断某个值是否在列表中,in not in
注意:开头、结尾、步长的理解,开头索引,结尾索引,默认步长方向是向右按照步长取,如果为负就向左按照步长取
就取,取不到就没有
3.增
append增加,insert(索引,值)(插入的超过索引的数据就会插到最后一位,列表可以进行
相加,返回新的列表,extend(list)产生新的列表
4.删
pop()删除并返回删除的数,del 对象[索引] or 对象[切片]
L.remove(值)但是只删除一个值,不是全部进行删除,没有就报错
L.clear()
5.改
索引赋值list[1]='1111'
切片赋值list[1:3] = 可以赋值单个数,也可以赋值一个列表
6.排序(按照ascll码的大小排序)
正序排序L.sort() 逆序排序L.sort(reverse=True) sorted(L)
L.sort(key=str.lower) # 把大写当作小写进行排序
L.sort(keystr.str.upper) # 把小写当大写来进行排序
7.反转-对原数据进行的修改
L.reverse()
2.列表生成式如何操作?
1.简单的列表生成式
[x * x for x in range(1,11)]
2.复杂的列表生成式
2.1 右边加if表示过滤,不能加else
[x*x for x in range(1,11) if x%2==0]
2.2 加在左边的if必须要有else因为表达式必须要有结果不然就报错
[x if x%2==0 else -x for x in range(1,11)]
2.3 两层的for循环 前面一次的循环会一次次跟后面的for循环运算
[m+n for m in range(1,5) for n in range(5,10)]
2.4 4.可以操作两个返回的变量
d = {'x': 'A', 'y': 'B', 'z': 'C' }
[k + '=' + v for k, v in d.items()]
['y=B', 'x=A', 'z=C']
3.对元组的操作有哪些?
元组是不可变类型,只能创建和查看,没有修改,增加数据,这些操作都是生成新的引用
1.创建
空元组创建 a=() 或者 a = tuple()
创建带初始值的元组a = (1,2,3)
注意:创建单元素元组时必须要加逗号,如:a=(2,)
2.查看
一种通过是通过索引的方式 a[2]
另一个是通过切片的方式获取 a[1:3]
3.不变中的可变性
对于元组的不可变性,当元组中嵌套列表时,这个嵌套列表的数据是可以进行修改的,这里
不变的是对列表引用,可变的是引用中的数据。