python 列表
列表的特点
1、列表是一种可变的数据类型,这点是跟元组有区别的
2、列表中的值是有序的,并且可存放重复的值,这点跟set有区别的
3、python中的列表类似于其它语言中的数组
4、列表中元素的值可以多种数据类型并存
列表基本操作方法
1、元素赋值
1
2
3
|
>>> list1 = [ 3 , 9 , 'python' , 'java' ,[ 9 , 3 , 5 ]]
>>> print list1
[ 3 , 9 , 'python' , 'java' , [ 9 , 3 , 5 ]]
|
2、列表分片
1
2
3
4
5
6
7
8
9
10
11
|
#列表中的索引从0开始,第一个冒号前面的值代表列表索引的起始值,第一个冒号后面的值表示分片结束的索引值(不包含) >>> print list1[ 0 : 4 ]
[ 3 , 9 , 'python' , 'java' ]
#[::-1] 第二个冒号后面的值表示步长,可为负,负数表示按照步长倒序输出 >>> print list1[:: 2 ]
>>> print list1[:: 2 ]
[ 3 , 'python' , [ 9 , 3 , 5 ]]
>>> print list1[:: - 1 ]
[[ 9 , 3 , 5 ], 'java' , 'python' , 9 , 3 ]
>>> print list1[ - 1 : - 4 : - 2 ]
[[ 9 , 3 , 5 ], 'python' ]
|
3、删除元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
>>> print list1
[ 3 , 9 , 'python' , 'java' , [ 9 , 3 , 5 ]]
#remove方法是根据列表中的值进行删除 >>> list1.remove( 3 )
#如果remove的值在列表中的值不存在,那么会解释器会毫不留情的报错 >>> remove( 1 )
Traceback (most recent call last): File "<input>" , line 1 , in <module>
NameError: name 'remove' is not defined
>>> print list1
[ 9 , 'python' , 'java' , [ 9 , 3 , 5 ]]
#del是根据索引进行删除 >>> del list1[ 2 ]
>>> print list1
[ 9 , 'python' , [ 9 , 3 , 5 ]]
|
4、len方法
1
2
3
4
5
6
7
|
>>> list1 = [ 1 , 8 , 23 , 56 , 32 , 9 , 23 ,[ 5 , 9 , 3 , 9 ]]
#内嵌列表在外面列表看来长度为1 >>> print len (list1)
8 #计算内嵌列表的长度 >>> print len (list1[ - 1 ])
4 |
5、count方法
1
2
3
4
5
6
7
8
|
>>> print list1.count( 23 )
2 #如果要统计的值在列表中不存在则返回0 >>> print list1.count( 25 )
0 #内嵌列表以及元组的值不会被统计进来 >>> print list1.count( 9 )
1 |
6、append方法
1
2
3
4
5
6
|
#append可以添加各种数据类型 >>> list1.append( 'Kingway' )
>>> list1.append([ 2 , 3 , 4 , 5 ])
>>> list1.append( 9 )
>>> print list1
[ 1 , 8 , 23 , 56 , 32 , 9 , 23 , [ 5 , 9 , 3 , 9 ], 'Kingway' , [ 2 , 3 , 4 , 5 ], 9 ]
|
7、extend方法
1
2
3
4
5
6
7
8
9
|
#extend属于列表的扩展,只能对其他列表进行扩展,而无法像append那样添加其它元素的值 >>> list1.extend([ 6 , 7 , 8 ])
>>> print list1
[ 1 , 8 , 23 , 56 , 32 , 9 , 23 , [ 5 , 9 , 3 , 9 ], 'Kingway' , [ 2 , 3 , 4 , 5 ], 9 , 6 , 7 , 8 ]
#直接添加其它元素的值会报错 >>> list1.extend( 9 )
Traceback (most recent call last): File "<input>" , line 1 , in <module>
TypeError: 'int' object is not iterable
|
8、insert方法
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#insert方法中第一个参数的值为索引,第二个参数为需要插入的值,插入值可以是各种数据类型 >>> list1.insert( 3 , 'four' )
>>> print list1
[ 1 , 8 , 23 , 'four' , 56 , 32 , 9 , 23 , [ 5 , 9 , 3 , 9 ], 'Kingway' , [ 2 , 3 , 4 , 5 ], 9 , 6 , 7 , 8 ]
#如果索引的值大于列表长度,那么将在列表的最后一位插入该值 >>> list1.insert( 100 , "end" )
>>> print list1
[ 1 , 8 , 23 , 'four' , 56 , 32 , 9 , 23 , [ 5 , 9 , 3 , 9 ], 'Kingway' , [ 2 , 3 , 4 , 5 ], 9 , 6 , 7 , 8 , 'end' ]
#索引的值不能为负,否则将会报错 >>> list1.index( - 10 , 'first' )
Traceback (most recent call last): File "<input>" , line 1 , in <module>
TypeError: slice indices must be integers or None or have an __index__ method
|
9、pop方法
1
2
3
4
5
6
7
8
|
#pop方法用于删除相应的值并将删除的值返回,默认删除列表的最后一位 >>> list1.pop() 'end' #删除并返回指定位置的值 >>> list1.pop( 2 )
23 >>> print list1
[ 1 , 8 , 'four' , 56 , 32 , 9 , 23 , [ 5 , 9 , 3 , 9 ], 'Kingway' , [ 2 , 3 , 4 , 5 ], 9 , 6 , 7 , 8 ]
|
10、sort方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#sort方法可以将列表进行排序 >>> list1 = [ 23 , 9 , 15 , 3 ]
>>> list1.sort() >>> print list1
[ 3 , 9 , 15 , 23 ]
#sort方法会改变原列表的值,sorted方法不会对原列表的值进行修改,sort为列表内置的方法,sorted为python内置的方法 >>> list1 = [ 23 , 9 , 15 , 3 ]
>>> list2 = sorted (list1)
>>> print list1
[ 23 , 9 , 15 , 3 ]
>>> print list2
[ 3 , 9 , 15 , 23 ]
#sort可以以字符串值的长度进行排序 >>> list1 = [ 'a' , 'dddd' , 'ccc' , 'bb' ]
>>> list1.sort(key = len )
>>> print list1
[ 'a' , 'bb' , 'ccc' , 'dddd' ]
|
11、其它方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#reverse方法,将列表中的元素倒序排列 >>> list1 = [ 23 , 5 , 9 , 18 , 6 ]
>>> list1.reverse() >>> print list1
[ 6 , 18 , 9 , 5 , 23 ]
#max方法,将列表中的最大值输出 >>> print max (list1)
23 #min方法,将列表中的最小值输出 >>> print min (list1)
5 #index方法,将对应元素的索引输出,如果该元素在列表中不存在,则报错,如果该元素在列表中有多个,则返回第一个被查到的值的索引值 >>> list1 = [ 32 , 8 , 234 , 9 , 8 , 12 ]
>>> list1.index( 8 )
1 >>> list1.index( 3 )
Traceback (most recent call last): File "<input>" , line 1 , in <module>
ValueError: 3 is not in list
#cmp方法,比较两个列表的值,如果第一个大于第二个则返回1,反之结果为-1,两个列表相等则为0 >>> list1 = [ 9 , 5 ]
>>> list2 = [ 9 , 7 ]
>>> cmp (list1,list2)
- 1
>>> list2 = [ 9 , 5 ]
>>> cmp (list1,list2)
0 >>> list2 = [ 7 , 9 ]
>>> cmp (list1,list2)
1 |