python中的list
用法
1、定义和获取
字面意思就是一个集合(有序、有界)。在Python中List中的元素用中括号[]来表示,可以这样定义一个List:
定义一个List:
#定义一个空的List:
L1 = []
#定义一个List:
L2 = [12, 'China', 19.998]
print(L1)
#访问元素通过序号,一样是下标从0开始
print(L2[0])
#List也可以倒序访问,通过“倒数第x个”这样的下标来表示序号
#比如 - 1这个下标就表示倒数第一个元素:
print(L2[-1])
结果:
越界会报错:
#正序越界
print(L2[3])
#逆序越界
print(L2[-4])
结果:
分片
分片:L4[0:2]
复制:L5*3
列表分片就是指将列表里面的一些列元素(不仅仅是某一个元素)进行获取或者得到
代码:
print(L4)
#Temp=m[A:B] %表示将m列表里从索引号位置为A开始的元素到B-1处元素之间的列表获取赋给temp.
L5=L4[0:2]
print(L5)
结果:
2、添加
元素添加:
#append(b)添加到尾部
L2.append('b')
print(L2)
#insert()方法添加到指定位置(下标从0开始
L2.insert(1, 'good')
print(L2)
结果:
列表加和:
print(L2)
#新建列表3,下面会用列表2和列表3进行加合操作
L3=['ad1','ad2']
print(L3)
#extend向列表尾部追加一个列表,将列表中的每个元素都追加进来,在原有列表上增加
L2.extend(L3)
print(L2)
#append向列表尾部追加一个新元素,列表只占一个索引位,在原有列表上增加
L2.append(L3)
print(L2)
#+直接用+号看上去与用extend一样的效果,但是实际上是生成了一个新的列表存这两个列表的和,只能用在两个列表相加上
L4=L2+L3
print(L4)
结果:
复制:
L5*3:L5列表复制3次
代码:
print(L5)
#*:主要实现的是列表的复制和添加
L6=L5*3
print(L6)
结果:
3、删除
(1)pop()
删除最后尾部元素,也可以指定一参数删除指定位置,可以返回对应元素
(2)remove()
remove()的作用是移除掉列表m里面的特定元素;
(3)del m[n]
删除掉列表里面的索引号位置为n 的元素,这里需要注意的是del是一种操作语句
pop()代码:
print(L4)
#pop删除最后尾部元素,也可以指定一参数删除指定位置,可以返回对应元素
L4.pop()
print(L4)
c=L4.pop(0)
print(L4)
print(c)
结果:
remove() 和 del m[n] 代码:
print(L4)
#remove的作用是移除掉列表m里面的特定元素
L4.remove('ad1')
print(L4)
#del m[n]删除掉列表里面的索引号位置为n 的元素,这里需要注意的是del是一种操作语句
del L4[0]
print(L4)
结果:
4、其他
比较:> <
次数:
m.count(A):输出元素A在列表m里面出现的次数
索引位置号:
m.index(A):输出元素A在列表m里面的索引位置号
m.index(A,a,b):对于列表m里面包含多个元素A时,输出在列表m索引号a-b之间的特定索引号
翻转:
m.reverse():将列表m进行前后的翻转,前变后,后变前
排序:
m.sort():将列表m里面地数据进行从小到大的排列 m.sort(reverse=True):将列表m里面地数据进行从大到小的排列
其实对于列表m里面的元素进行从大到小的排列还可以用以下方法:
N=m.sort()
N.reverse()
5、深拷贝与浅拷贝
1) 深拷贝:
M=[A,b,a,c]
N=M[:]
2) 浅拷贝:
N=M
有人说可以直接将M赋值给N也是一样的,虽然表面看起来两者的实现效果是一样的,但是如果你要继续对N进行操作的时候就会出现问题,因为对于正确的第一种拷贝复制,它的作用是将列表M复制下来给N,如果后面对M进行操作,它对于N是完全没有影响的,而我们如果采用赋值的方式,那么在后面对M操作以后就会影响到N,N的值也会随之改变。
综上所述,第一种python列表的拷贝方法才是真正意义上的深拷贝,而赋值操作只是一种暂时的等量代换,它属于一种浅拷贝。