列表:
列表的顺序是固定的,可以用下标来访问(列表/元祖/字符串都可以用下标访问)?
定义: a=[]
#申明一个列表,用[]
>>> list1=[1,2,3,4,5]
>>> list2=[‘a‘,‘b‘,‘c‘,‘d‘]
#访问列表的值,用下标index,index值从0开始
>>> list1[2]
3
>>> list2[0]
‘a‘
列表的增删改查
#增 append:在列表的末尾添加元素 insert:在指定的位置添加元素 extend:将可迭代对象指定的元素展开放到原列表中
>>> list1.append(100) #在末尾添加元素 >>> list1
[1,5,100]
>>> list1.insert(0,2.5) #在指定位置添加元素 >>> list1
[2.5,1,100]
>>> list1.extend(list2)
>>> list1
[2.5,100,‘a‘,‘d‘]
#改
>>> list1[1]=‘python‘ #重新按下标赋值
>>> list1
[2.5,‘python‘,‘d‘]
>>>
#查
>>> list1[3:8] #切片查
[3,‘a‘]
>>> list1[-1] #坐标查
‘d‘
>>> for i in list1: #按内容遍历查
... print(i,end="")
...
2.5python2345100abcd
>>>
>>> for i in range(len(list1)): #按坐标遍历查
... print(list1[i],end="")
...
2.5python2345100abcd>>>
#删 pop remove del
>>> list1.pop(-1) #弹出删,pop(index),参数为下标;不填参数时:删除坐标最后位置的元素,并返回元素,返回值可以存到一个变量里
‘d‘
>>> list1
[2.5,‘c‘]
>>> list1.pop(0)
2.5
>>> list1
[‘python‘,‘c‘]
>>> list1.remove(100) #remove按值删,参数是列表里的值,删除的元素必须存在否则报错
>>> list1
[‘python‘,‘c‘]
>>> del list1[0]? #按坐标删 >>> list1 [2,‘a‘,‘b‘,‘c‘] >>> del list1? #不填参数时,删除整个列表 >>> list1 Traceback (most recent call last): File "<stdin>",line 1,in <module> NameError: name ‘list1‘ is not defined >>>
?
目前我们有三种方法来倒序遍历一个List: 1 . for x in reversed(array): ? ? ? ? ? ?print x 2. for x in range(len(array)-1,-1,-1): ? ? ? ? ? ?print array[x] 3. for x in array[::-1]: ? ? ? ? ? ?print x?
?
?
Python列表脚本操作符
列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
如下所示:
Python 表达式 |
结果 |
描述 |
len([1,3]) |
3 |
长度 |
[1,3] + [4,6] |
[1,6] |
组合 |
[‘Hi!‘] * 4 |
[‘Hi!‘,‘Hi!‘,‘Hi!‘] |
重复 |
3 in [1,3] |
True |
元素是否存在于列表中 |
for x in [1,3]: print(x,end=" ") |
1 2 3 |
迭代 |
?
Python列表截取与拼接
Python的列表截取与字符串操作类型,如下所示:
L=[‘Google‘,‘Runoob‘,‘Taobao‘]
操作:
Python 表达式 |
结果 |
描述 |
L[2] |
‘Taobao‘ |
读取第三个元素 |
L[-2] |
‘Runoob‘ |
从右侧开始读取倒数第二个元素: count from the right |
L[1:] |
[‘Runoob‘,‘Taobao‘] |
输出从第二个元素开始后的所有元素 |
>>>L=[‘Google‘,‘Runoob‘,‘Taobao‘]
>>> L[2] ‘Taobao‘
>>> L[-2] ‘Runoob‘
>>> L[1:] [‘Runoob‘,‘Taobao‘]
>>>
?
列表还支持拼接操作:
>>>squares = [1,9,16,25]
>>> squares += [36,49,64,81,100]
>>> squares [1,25,36,100]
>>>
?
?
嵌套列表
使用嵌套列表即在列表里创建其它列表,例如:
>>>a = [‘a‘,‘c‘]
>>> n = [1,3]
>>> x = [a,n]
>>> x [[‘a‘,‘c‘],[1,3]]
>>> x[0] [‘a‘,‘c‘]
>>> x[0][1] ‘b‘
?
?
Python列表函数&方法
Python包含以下函数:
序号 |
函数 |
1 |
len(list) 列表元素个数 |
2 |
max(list) 返回列表元素最大值 |
3 |
min(list) 返回列表元素最小值 |
4 |
list(seq) 将元组转换为列表 |
?
>>> a=[1,3] >>> len(a) 8 >>> b =[2,6,8] >>> a+b [1,8] >>> b*3 [2,8,8] >>> max(b) 8 >>> min(b) 2 >>>
?
?
Python包含以下方法:
?
序号 |
方法 |
1 |
list.append(obj) 在列表末尾添加新的对象 |
2 |
list.count(obj) 统计某个元素在列表中出现的次数 |
3 |
list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
4 |
list.index(obj) 从列表中找出某个值第一个匹配项的索引位置 |
5 |
list.insert(index,obj) 将对象插入列表 |
6 |
list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
7 |
list.remove(obj) 移除列表中某个值的第一个匹配项 |
8 |
list.reverse() 反向列表中元素 |
9 |
list.sort( key=None,reverse=False) 对原列表进行排序 |
10 |
list.clear() 清空列表 |
11 |
list.copy() 复制列表 |
?
?
count:统计某个元素在列表里出现的次数
index:查看某个元素在列表中第一次出现的位置
>>> a=[1,3] >>> a.count(2) 2 >>> a.count(3) 4 >>> a.index(2) 1 >>> a.index(3) 4 >>>
?
?
?
多种方式复制列表:
a[:],list(a),a*1,copy.copy(a)四种方式复制列表结果都可以得到一个新的列表
1.a[:] >>> a=[1,7,9] >>> b =a[:] >>> b [1,9] 2.list(a) >>> c =list(a) >>> c [1,9] 3.a*3 >>> d =a *3 >>> d [1,9] 4.copy.copy(a) >>> e =copy.copy(a) >>> e [1,9]
>>> id(a) 66235528 >>> id(e) 67983880
?
?栗子:
>>> a=[[10],20] >>> b=a[:] >>> c=list(a) >>> d =a * 1 >>> e =copy.copy(a) >>> f = copy.deepcopy(a) >>> a.append(21) >>> a[0].append(11) >>> print(id(a),a) 67985352 [[10,11],20,21] >>> print(id(b),b)? 67985032 [[10,20] >>> print(id(c),c) 68019848 [[10,20] >>> print(id(d),d) 66282888 [[10,20] >>> print(id(e),e) 66284616 [[10,20] >>> print(id(f),f) 67985224 [[10],20]
总结:
从以上可以看出,使用a[:],copy.copy(a)四种方式复制列表结果都可以得到一个新的列表,但是如果列表中含有列表,所有b,c,d,e资格新列表的字列表都是指引到同一个对象上。只用使用copy.deepcopy(a)方法得到的新列表f才是包括子列表在内的完全复制
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|