标签:添加 abc oba 报错 索引 遍历 第一个 子列 复制
列表:
列表的顺序是固定的,可以用下标来访问(列表/元祖/字符串都可以用下标访问)
定义: 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, 2, 3, 4, 5, 100] >>> list1.insert(0,2.5) #在指定位置添加元素 >>> list1 [2.5, 1, 2, 3, 4, 5, 100] >>> list1.extend(list2) >>> list1 [2.5, 1, 2, 3, 4, 5, 100, ‘a‘, ‘b‘, ‘c‘, ‘d‘]
#改 >>> list1[1]=‘python‘ #重新按下标赋值 >>> list1 [2.5, ‘python‘, 2, 3, 4, 5, 100, ‘a‘, ‘b‘, ‘c‘, ‘d‘] >>>
#查 >>> list1[3:8] #切片查 [3, 4, 5, 100, ‘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, ‘python‘, 2, 3, 4, 5, 100, ‘a‘, ‘b‘, ‘c‘] >>> list1.pop(0) 2.5 >>> list1 [‘python‘, 2, 3, 4, 5, 100, ‘a‘, ‘b‘, ‘c‘] >>> list1.remove(100) #remove按值删,参数是列表里的值,删除的元素必须存在否则报错 >>> list1 [‘python‘, 2, 3, 4, 5, ‘a‘, ‘b‘, ‘c‘]
>>> del list1[0] #按坐标删
>>> list1
[2, 3, 4, 5, ‘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, 2, 3]) | 3 | 长度 |
[1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | 组合 |
[‘Hi!‘] * 4 | [‘Hi!‘, ‘Hi!‘, ‘Hi!‘, ‘Hi!‘] | 重复 |
3 in [1, 2, 3] | True | 元素是否存在于列表中 |
for x in [1, 2, 3]: print(x, end=" ") | 1 2 3 | 迭代 |
Python列表截取与拼接
Python的列表截取与字符串操作类型,如下所示:
操作:
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, 4, 9, 16, 25] >>> squares += [36, 49, 64, 81, 100] >>> squares [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] >>>
嵌套列表
使用嵌套列表即在列表里创建其它列表,例如:
>>>a = [‘a‘, ‘b‘, ‘c‘] >>> n = [1, 2, 3] >>> x = [a, n] >>> x [[‘a‘, ‘b‘, ‘c‘], [1, 2, 3]] >>> x[0] [‘a‘, ‘b‘, ‘c‘] >>> x[0][1] ‘b‘
Python列表函数&方法
Python包含以下函数:
序号 | 函数 |
---|---|
1 | len(list) 列表元素个数 |
2 | max(list) 返回列表元素最大值 |
3 | min(list) 返回列表元素最小值 |
4 | list(seq) 将元组转换为列表 |
>>> a=[1,2,1,2,3,3,3,3]
>>> len(a)
8
>>> b =[2,4,6,8]
>>> a+b
[1, 2, 1, 2, 3, 3, 3, 3, 2, 4, 6, 8]
>>> b*3
[2, 4, 6, 8, 2, 4, 6, 8, 2, 4, 6, 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,2,1,2,3,3,3,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,3,5,7,9]
>>> b =a[:]
>>> b
[1, 3, 5, 7, 9]
2.list(a)
>>> c =list(a)
>>> c
[1, 3, 5, 7, 9]
3.a*3
>>> d =a *3
>>> d
[1, 3, 5, 7, 9, 1, 3, 5, 7, 9, 1, 3, 5, 7, 9]
4.copy.copy(a)
>>> e =copy.copy(a)
>>> e
[1, 3, 5, 7, 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, 11], 20]
>>> print(id(c),c)
68019848 [[10, 11], 20]
>>> print(id(d),d)
66282888 [[10, 11], 20]
>>> print(id(e),e)
66284616 [[10, 11], 20]
>>> print(id(f),f)
67985224 [[10], 20]
总结:
从以上可以看出,使用a[:],list(a),a*1,copy.copy(a)四种方式复制列表结果都可以得到一个新的列表,但是如果列表中含有
列表,所有b,c,d,e资格新列表的字列表都是指引到同一个对象上。只用使用copy.deepcopy(a)方法得到的新列表
f才是包括子列表在内的完全复制
标签:添加 abc oba 报错 索引 遍历 第一个 子列 复制
原文地址:https://www.cnblogs.com/wenm1128/p/11572040.html