一、列表定义
python列表是python内置的数据对象之一
列表是用"[]"包含,内有任意的数据对象,每一个数据对象
以","分割,每个数据对像称之为元素
python列表是一个有序的序列
python列表支持任意的嵌套,嵌套的层次深度没有限制
a=[] #空列表 print a a=["seq1","seq2",‘keyman‘,808,3.1] #创建列表 print a a=list(‘abcsgr‘) #list函数创建列表 print a a=[‘a‘,[‘b‘,‘c‘],‘d‘] #列表嵌套 print a
执行结果为
[] [‘seq1‘, ‘seq2‘, ‘keyman‘, 808, 3.1] [‘a‘, ‘b‘, ‘c‘, ‘s‘, ‘g‘, ‘r‘] [‘a‘, [‘b‘, ‘c‘], ‘d‘]
二、列表的分片操作(游标)
列表是有序的序列,支持索引操作,或者按照元素寻找索引
列表的索引是从0开始,以此类推
[‘s‘, ‘t‘, ‘r‘, ‘i‘, ‘n‘, ‘g‘, ‘s‘][0:-1:2] 操作方法和字符串的操作方法一样,返回的为列表
[‘s‘, ‘t‘, ‘r‘, ‘i‘, ‘n‘, ‘g‘, ‘s‘][0]根据索引的位置,查找索引对应的元素,返回的为字符串
a=list(‘Python,nihao‘) print a print a[0:7:2] print a[3]
执行结果为
[‘P‘, ‘y‘, ‘t‘, ‘h‘, ‘o‘, ‘n‘, ‘,‘, ‘n‘, ‘i‘, ‘h‘, ‘a‘, ‘o‘] [‘P‘, ‘t‘, ‘o‘, ‘,‘] h
三、列表方法
1.list.append(object)
append是将新的元素附加到列表内,附加的位置在列表最后
append追加的元素只能是一个元素,不能进行多元素同时操作
>>> print a [‘P‘, ‘y‘, ‘t‘, ‘h‘, ‘o‘, ‘n‘, ‘,‘, ‘n‘, ‘i‘, ‘h‘, ‘a‘, ‘o‘] >>> a.append(‘!‘) >>> print a [‘P‘, ‘y‘, ‘t‘, ‘h‘, ‘o‘, ‘n‘, ‘,‘, ‘n‘, ‘i‘, ‘h‘, ‘a‘, ‘o‘, ‘!‘]
2.list.count(value)
统计每个对象在列表的对象中出现的次数
返回值为number
>>> print a [‘P‘, ‘y‘, ‘t‘, ‘h‘, ‘o‘, ‘n‘, ‘,‘, ‘n‘, ‘i‘, ‘h‘, ‘a‘, ‘o‘, ‘!‘] >>> print a.count(‘n‘) 2 >>> print a.count(‘b‘) 0
3.list.extend(iterable)
扩展列表,将可迭代的对象进行差分,将其追加到列表
iterable是指可迭代的对象
>>> print a [‘P‘, ‘y‘, ‘t‘, ‘h‘, ‘o‘, ‘n‘, ‘,‘, ‘n‘, ‘i‘, ‘h‘, ‘a‘, ‘o‘, ‘!‘] >>> a.extend(‘Hello!‘) >>> print a [‘P‘, ‘y‘, ‘t‘, ‘h‘, ‘o‘, ‘n‘, ‘,‘, ‘n‘, ‘i‘, ‘h‘, ‘a‘, ‘o‘, ‘!‘, ‘H‘, ‘e‘, ‘l‘, ‘l‘, ‘o‘, ‘!‘]
4.list.index(value, [start, [stop]])
根据列表内的元素查找元素所对应的索引
返回值为number
可选参数start stop指在什么范围内查找(具体用法和字符串的游标操作一样)
>>> print a [‘P‘, ‘y‘, ‘t‘, ‘h‘, ‘o‘, ‘n‘, ‘,‘, ‘n‘, ‘i‘, ‘h‘, ‘a‘, ‘o‘] >>> a.index(‘a‘) 10 >>> a.index(‘h‘,5) 9 >>> a.index(‘h‘,4,9) Traceback (most recent call last): File "<pyshell#17>", line 1, in <module> a.index(‘h‘,4,9) ValueError: ‘h‘ is not in list >>> a.index(‘h‘,4,10) 9 >>>
5.list.insert(index, object)
在给定的索引位置上,插入相对应的对象,对象可以是任意的
insert方法相当于list[6:6]=object,不等价于list[6]=object
>>> print a [‘P‘, ‘y‘, ‘t‘, ‘h‘, ‘o‘, ‘n‘, ‘,‘, ‘n‘, ‘i‘, ‘h‘, ‘a‘, ‘o‘] >>> a.insert(6,‘6‘) >>> print a [‘P‘, ‘y‘, ‘t‘, ‘h‘, ‘o‘, ‘n‘, ‘6‘, ‘,‘, ‘n‘, ‘i‘, ‘h‘, ‘a‘, ‘o‘] >>> a[6]=‘7‘ >>> print a [‘P‘, ‘y‘, ‘t‘, ‘h‘, ‘o‘, ‘n‘, ‘7‘, ‘,‘, ‘n‘, ‘i‘, ‘h‘, ‘a‘, ‘o‘] >>> a[2:2]=‘d‘ >>> a [‘P‘, ‘y‘, ‘d‘, ‘t‘, ‘h‘, ‘o‘, ‘n‘, ‘7‘, ‘,‘, ‘n‘, ‘i‘, ‘h‘, ‘a‘, ‘o‘]
6.list.pop(index)
弹出列表内的元素,并删除该元素,默认是最后一个
index参数指定弹出指定索引对应的元素
>>> print a [‘P‘, ‘y‘, ‘t‘, ‘h‘, ‘o‘, ‘n‘, ‘,‘, ‘n‘, ‘i‘, ‘h‘, ‘a‘, ‘o‘] >>> a.pop(3) ‘h‘ >>> print a [‘P‘, ‘y‘, ‘t‘, ‘o‘, ‘n‘, ‘,‘, ‘n‘, ‘i‘, ‘h‘, ‘a‘, ‘o‘] >>> a.pop() ‘o‘ >>> print a [‘P‘, ‘y‘, ‘t‘, ‘o‘, ‘n‘, ‘,‘, ‘n‘, ‘i‘, ‘h‘, ‘a‘] >>> a.pop(a.index(‘y‘)) ‘y‘ >>> print a [‘P‘, ‘t‘, ‘o‘, ‘n‘, ‘,‘, ‘n‘, ‘i‘, ‘h‘, ‘a‘]
7.list.remove(value)
删除指定的元素,元素应当是在列表中存在,若值不存在引发ValueError
>>> print a [‘P‘, ‘y‘, ‘d‘, ‘h‘, ‘o‘, ‘n‘, ‘7‘, ‘,‘, ‘n‘, ‘i‘, ‘h‘, ‘a‘] >>> a.remove(‘n‘) >>> print a [‘P‘, ‘y‘, ‘d‘, ‘h‘, ‘o‘, ‘7‘, ‘,‘, ‘n‘, ‘i‘, ‘h‘, ‘a‘] >>> a.remove(‘p‘) Traceback (most recent call last): File "<pyshell#35>", line 1, in <module> a.remove(‘p‘) ValueError: list.remove(x): x not in list
8.list.reverse()
将列表内元素顺序前后对调
reverse不是反排序
>>> print a [‘P‘, ‘y‘, ‘d‘, ‘h‘, ‘o‘, ‘7‘, ‘,‘, ‘n‘, ‘i‘, ‘h‘, ‘a‘] >>> a.reverse() >>> print a [‘a‘, ‘h‘, ‘i‘, ‘n‘, ‘,‘, ‘7‘, ‘o‘, ‘h‘, ‘d‘, ‘y‘, ‘P‘]
9.list.sort()
将列表的内的元素进行排序
排序的顺序为0-9,A-Z,a-z
reverse=True反排序
>>> a=list(‘afsdfbADGDSFSD214325325‘) >>> a.sort() >>> print a [‘1‘, ‘2‘, ‘2‘, ‘2‘, ‘3‘, ‘3‘, ‘4‘, ‘5‘, ‘5‘, ‘A‘, ‘D‘, ‘D‘, ‘D‘, ‘F‘, ‘G‘, ‘S‘, ‘S‘, ‘a‘, ‘b‘, ‘d‘, ‘f‘, ‘f‘, ‘s‘] >>> a.sort(reverse=True) >>> print a [‘s‘, ‘f‘, ‘f‘, ‘d‘, ‘b‘, ‘a‘, ‘S‘, ‘S‘, ‘G‘, ‘F‘, ‘D‘, ‘D‘, ‘D‘, ‘A‘, ‘5‘, ‘5‘, ‘4‘, ‘3‘, ‘3‘, ‘2‘, ‘2‘, ‘2‘, ‘1‘]
10.list[index]=value和del list[index]
list[index]=value:给列表中的指定的游标赋值
del list[index]:删除列表中的指定的游标的值
>>> a=list(‘abc123456‘) >>> print a [‘a‘, ‘b‘, ‘c‘, ‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘] >>> a[3]=‘A‘ >>> print a [‘a‘, ‘b‘, ‘c‘, ‘A‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘] >>> del a[3] >>> print a [‘a‘, ‘b‘, ‘c‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘]