python中list操作详解

本文详细介绍了 Python 列表的基础操作,包括定义、索引、增加元素、搜索、删除元素、运算符、链接字符串、分割字符串、映射解析、过滤等核心功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.定义list

[python]  view plain  copy
  1. >>> li = ["a""b""mpilgrim""z""example"]  
  2. >>> li  
  3. ['a''b''mpilgrim''z''example']  
  4. >>> li[0]                                        
  5. 'a'  
  6. >>> li[4]                                        
  7. 'example'  

2.负的list 索引

[python]  view plain  copy
  1. >>> li  
  2. ['a''b''mpilgrim''z''example']  
  3. >>> li[-1]  
  4. 'example'  
  5. >>> li[-3]  
  6. 'mpilgrim'  
  7. >>> li  
  8. ['a''b''mpilgrim''z''example']  
  9. >>> li[1:3]   
  10. ['b''mpilgrim']  
  11. >>> li[1:-1]  
  12. ['b''mpilgrim''z']  
  13. >>> li[0:3]   
  14. ['a''b''mpilgrim']  

3.向 list 中增加元素

[python]  view plain  copy
  1. >>> li  
  2. ['a''b''mpilgrim''z''example']  
  3. >>> li.append("new")                
  4. >>> li  
  5. ['a''b''mpilgrim''z''example''new']  
  6. >>> li.insert(2"new")             
  7. >>> li  
  8. ['a''b''new''mpilgrim''z''example''new']  
  9. >>> li.extend(["two""elements"])  
  10. >>> li  
  11. ['a''b''new''mpilgrim''z''example''new''two''elements']  

4.搜索 list

[python]  view plain  copy
  1. >>> li  
  2. ['a''b''new''mpilgrim''z''example''new''two''elements']  
  3. >>> li.index("example")  
  4. 5  
  5. >>> li.index("new")      
  6. 2  
  7. >>> li.index("c")        
  8. Traceback (innermost last):  
  9.   File "<interactive input>", line 1in ?  
  10. ValueError: list.index(x): x not in list  
  11. >>> "c" in li            
  12. False  

5.从 list 中删除元素

[python]  view plain  copy
  1. >>> li  
  2. ['a''b''new''mpilgrim''z''example''new''two''elements']  
  3. >>> li.remove("z")    
  4. >>> li  
  5. ['a''b''new''mpilgrim''example''new''two''elements']  
  6. >>> li.remove("new")  
  7. >>> li  
  8. ['a''b''mpilgrim''example''new''two''elements']  
  9. >>> li.remove("c")    
  10. Traceback (innermost last):  
  11.   File "<interactive input>", line 1in ?  
  12. ValueError: list.remove(x): x not in list  
  13. >>> li.pop()          
  14. 'elements'  
  15. >>> li  
  16. ['a''b''mpilgrim''example''new''two']  

remove 从 list 中删除一个值的首次出现。
remove 仅仅 删除一个值的首次出现。 在这里, 'new' 在 list 中出现了两次, 但 li.remove("new") 只删除了 'new' 的首次出现。
如果在 list 中没有找到值, Python 会引发一个异常来响应 index 方法。 
pop 会做两件事: 删除 list 的最后一个元素, 然后返回删除元素的值。

6.list 运算符

[python]  view plain  copy
  1. >>> li = ['a''b''mpilgrim']  
  2. >>> li = li + ['example''new']  
  3. >>> li  
  4. ['a''b''mpilgrim''example''new']  
  5. >>> li += ['two']                 
  6. >>> li  
  7. ['a''b''mpilgrim''example''new''two']  
  8. >>> li = [12] * 3               
  9. >>> li  
  10. [121212]  

7.使用join链接list成为字符串

[python]  view plain  copy
  1. >>> params = {"server":"mpilgrim""database":"master""uid":"sa""pwd":"secret"}  
  2. >>> ["%s=%s" % (k, v) for k, v in params.items()]  
  3. ['server=mpilgrim''uid=sa''database=master''pwd=secret']  
  4. >>> ";".join(["%s=%s" % (k, v) for k, v in params.items()])  
  5. 'server=mpilgrim;uid=sa;database=master;pwd=secret'  

join 只能用于元素是字符串的 list; 它不进行任何的类型强制转换。连接一个存在一个或多个非字符串元素的 list 将引发一个异常。

8.分割字符串

[python]  view plain  copy
  1. >>> li = ['server=mpilgrim''uid=sa''database=master''pwd=secret']  
  2. >>> s = ";".join(li)  
  3. >>> s  
  4. 'server=mpilgrim;uid=sa;database=master;pwd=secret'  
  5. >>> s.split(";")     
  6. ['server=mpilgrim''uid=sa''database=master''pwd=secret']  
  7. >>> s.split(";"1)  
  8. ['server=mpilgrim''uid=sa;database=master;pwd=secret']  

split 与 join 正好相反, 它将一个字符串分割成多元素 list。 
注意, 分隔符 (“;”) 被完全去掉了, 它没有在返回的 list 中的任意元素中出现。
split 接受一个可选的第二个参数, 它是要分割的次数。

9.list的映射解析

[python]  view plain  copy
  1. >>> li = [1984]  
  2. >>> [elem*2 for elem in li]       
  3. [218168]  
  4. >>> li                            
  5. [1984]  
  6. >>> li = [elem*2 for elem in li]  
  7. >>> li  
  8. [218168]  

10.dictionary中的解析

[python]  view plain  copy
  1. >>> params = {"server":"mpilgrim""database":"master""uid":"sa""pwd":"secret"}  
  2. >>> params.keys()    
  3. ['server''uid''database''pwd']  
  4. >>> params.values()  
  5. ['mpilgrim''sa''master''secret']  
  6. >>> params.items()  
  7. [('server''mpilgrim'), ('uid''sa'), ('database''master'), ('pwd''secret')]  
  8. >>> [k for k, v in params.items()]                 
  9. ['server''uid''database''pwd']  
  10. >>> [v for k, v in params.items()]                 
  11. ['mpilgrim''sa''master''secret']  
  12. >>> ["%s=%s" % (k, v) for k, v in params.items()]  
  13. ['server=mpilgrim''uid=sa''database=master''pwd=secret']  

11.列表过滤

[python]  view plain  copy
  1. >>> li = ["a""mpilgrim""foo""b""c""b""d""d"]  
  2. >>> [elem for elem in li if len(elem) > 1]        
  3. ['mpilgrim''foo']  
  4. >>> [elem for elem in li if elem != "b"]          
  5. ['a''mpilgrim''foo''c''d''d']  
  6. >>> [elem for elem in li if li.count(elem) == 1]  
  7. ['a''mpilgrim''foo''c']  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值