本文实例讲述了python中list常用操作。分享给大家供大家参考。具体分析如下:
1.定义list
1
2
3
4
5
6
7
|
>>> li = [ "a" , "b" , "mpilgrim" , "z" , "example" ]
>>> li
[ 'a' , 'b' , 'mpilgrim' , 'z' , 'example' ]
>>> li[ 0 ]
'a'
>>> li[ 4 ]
'example'
|
2.负的list 索引
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
>>> li
[ 'a' , 'b' , 'mpilgrim' , 'z' , 'example' ]
>>> li[ - 1 ]
'example'
>>> li[ - 3 ]
'mpilgrim'
>>> li
[ 'a' , 'b' , 'mpilgrim' , 'z' , 'example' ]
>>> li[ 1 : 3 ]
[ 'b' , 'mpilgrim' ]
>>> li[ 1 : - 1 ]
[ 'b' , 'mpilgrim' , 'z' ]
>>> li[ 0 : 3 ]
[ 'a' , 'b' , 'mpilgrim' ]
|
3.向 list 中增加元素
1
2
3
4
5
6
7
8
9
10
11
|
>>> li
[ 'a' , 'b' , 'mpilgrim' , 'z' , 'example' ]
>>> li.append( "new" )
>>> li
[ 'a' , 'b' , 'mpilgrim' , 'z' , 'example' , 'new' ]
>>> li.insert( 2 , "new" )
>>> li
[ 'a' , 'b' , 'new' , 'mpilgrim' , 'z' , 'example' , 'new' ]
>>> li.extend([ "two" , "elements" ])
>>> li
[ 'a' , 'b' , 'new' , 'mpilgrim' , 'z' , 'example' , 'new' , 'two' , 'elements' ]
|
4.搜索 list
1
2
3
4
5
6
7
8
9
10
11
12
|
>>> li
[ 'a' , 'b' , 'new' , 'mpilgrim' , 'z' , 'example' , 'new' , 'two' , 'elements' ]
>>> li.index( "example" )
5
>>> li.index( "new" )
2
>>> li.index( "c" )
Traceback (innermost last):
File "<interactive input>" , line 1 , in ?
ValueError: list .index(x): x not in list
>>> "c" in li
False
|
5.从 list 中删除元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
>>> li
[ 'a' , 'b' , 'new' , 'mpilgrim' , 'z' , 'example' , 'new' , 'two' , 'elements' ]
>>> li.remove( "z" )
>>> li
[ 'a' , 'b' , 'new' , 'mpilgrim' , 'example' , 'new' , 'two' , 'elements' ]
>>> li.remove( "new" )
>>> li
[ 'a' , 'b' , 'mpilgrim' , 'example' , 'new' , 'two' , 'elements' ]
>>> li.remove( "c" )
Traceback (innermost last):
File "<interactive input>" , line 1 , in ?
ValueError: list .remove(x): x not in list
>>> li.pop()
'elements'
>>> li
[ 'a' , 'b' , 'mpilgrim' , 'example' , 'new' , 'two' ]
|
remove 从 list 中删除一个值的首次出现。
remove 仅仅 删除一个值的首次出现。 在这里, 'new' 在 list 中出现了两次, 但 li.remove("new") 只删除了 'new' 的首次出现。
如果在 list 中没有找到值, Python 会引发一个异常来响应 index 方法。
pop 会做两件事: 删除 list 的最后一个元素, 然后返回删除元素的值。
6.list 运算符
1
2
3
4
5
6
7
8
9
10
|
>>> li = [ 'a' , 'b' , 'mpilgrim' ]
>>> li = li + [ 'example' , 'new' ]
>>> li
[ 'a' , 'b' , 'mpilgrim' , 'example' , 'new' ]
>>> li + = [ 'two' ]
>>> li
[ 'a' , 'b' , 'mpilgrim' , 'example' , 'new' , 'two' ]
>>> li = [ 1 , 2 ] * 3
>>> li
[ 1 , 2 , 1 , 2 , 1 , 2 ]
|
7.使用join链接list成为字符串
1
2
3
4
5
|
>>> params = { "server" : "mpilgrim" , "database" : "master" , "uid" : "sa" , "pwd" : "secret" }
>>> [ "%s=%s" % (k, v) for k, v in params.items()]
[ 'server=mpilgrim' , 'uid=sa' , 'database=master' , 'pwd=secret' ]
>>> ";" .join([ "%s=%s" % (k, v) for k, v in params.items()])
'server=mpilgrim;uid=sa;database=master;pwd=secret'
|
join 只能用于元素是字符串的 list; 它不进行任何的类型强制转换。连接一个存在一个或多个非字符串元素的 list 将引发一个异常。
8.分割字符串
1
2
3
4
5
6
7
8
|
>>> li = [ 'server=mpilgrim' , 'uid=sa' , 'database=master' , 'pwd=secret' ]
>>> s = ";" .join(li)
>>> s
'server=mpilgrim;uid=sa;database=master;pwd=secret'
>>> s.split( ";" )
[ 'server=mpilgrim' , 'uid=sa' , 'database=master' , 'pwd=secret' ]
>>> s.split( ";" , 1 )
[ 'server=mpilgrim' , 'uid=sa;database=master;pwd=secret' ]
|
split 与 join 正好相反, 它将一个字符串分割成多元素 list。
注意, 分隔符 (“;”) 被完全去掉了, 它没有在返回的 list 中的任意元素中出现。
split 接受一个可选的第二个参数, 它是要分割的次数。
9.list的映射解析
1
2
3
4
5
6
7
8
|
>>> li = [ 1 , 9 , 8 , 4 ]
>>> [elem * 2 for elem in li]
[ 2 , 18 , 16 , 8 ]
>>> li
[ 1 , 9 , 8 , 4 ]
>>> li = [elem * 2 for elem in li]
>>> li
[ 2 , 18 , 16 , 8 ]
|
10.dictionary中的解析
1
2
3
4
5
6
7
8
9
10
11
12
13
|
>>> params = { "server" : "mpilgrim" , "database" : "master" , "uid" : "sa" , "pwd" : "secret" }
>>> params.keys()
[ 'server' , 'uid' , 'database' , 'pwd' ]
>>> params.values()
[ 'mpilgrim' , 'sa' , 'master' , 'secret' ]
>>> params.items()
[( 'server' , 'mpilgrim' ), ( 'uid' , 'sa' ), ( 'database' , 'master' ), ( 'pwd' , 'secret' )]
>>> [k for k, v in params.items()]
[ 'server' , 'uid' , 'database' , 'pwd' ]
>>> [v for k, v in params.items()]
[ 'mpilgrim' , 'sa' , 'master' , 'secret' ]
>>> [ "%s=%s" % (k, v) for k, v in params.items()]
[ 'server=mpilgrim' , 'uid=sa' , 'database=master' , 'pwd=secret' ]
|
11.列表过滤
1
2
3
4
5
6
7
|
>>> li = [ "a" , "mpilgrim" , "foo" , "b" , "c" , "b" , "d" , "d" ]
>>> [elem for elem in li if len (elem) > 1 ]
[ 'mpilgrim' , 'foo' ]
>>> [elem for elem in li if elem ! = "b" ]
[ 'a' , 'mpilgrim' , 'foo' , 'c' , 'd' , 'd' ]
>>> [elem for elem in li if li.count(elem) = = 1 ]
[ 'a' , 'mpilgrim' , 'foo' , 'c' ]
|
希望本文所述对大家的Python程序设计有所帮助。