本文实例讲述了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程序设计有所帮助。