python中list常用操作实例详解


Posted in Python onJune 03, 2015

本文实例讲述了python中list常用操作。分享给大家供大家参考。具体分析如下:

1.定义list

>>> li = ["a", "b", "mpilgrim", "z", "example"]
>>> li 
['a', 'b', 'mpilgrim', 'z', 'example']
>>> li[0]
'a' 
>>> li[4]
'example'

2.负的list 索引

>>> 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 中增加元素

>>> 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

>>> 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 中删除元素

>>> 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 运算符

>>> 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成为字符串

>>> 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.分割字符串

>>> 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的映射解析

>>> 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中的解析

>>> 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.列表过滤

>>> 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程序设计有所帮助。

Python 相关文章推荐
详细讲解用Python发送SMTP邮件的教程
Apr 29 Python
Python编程中的文件读写及相关的文件对象方法讲解
Jan 19 Python
python常用知识梳理(必看篇)
Mar 23 Python
django加载本地html的方法
May 27 Python
Numpy 改变数组维度的几种方法小结
Aug 02 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
Sep 04 Python
Python3 jupyter notebook 服务器搭建过程
Nov 30 Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
Apr 19 Python
Python数据可视化图实现过程详解
Jun 12 Python
基于django2.2连oracle11g解决版本冲突的问题
Jul 02 Python
python操作微信自动发消息的实现(微信聊天机器人)
Jul 14 Python
python用Configobj模块读取配置文件
Sep 26 Python
python中argparse模块用法实例详解
Jun 03 #Python
Python中的推导式使用详解
Jun 03 #Python
对于Python装饰器使用的一些建议
Jun 03 #Python
Python模块搜索概念介绍及模块安装方法介绍
Jun 03 #Python
Python使用ftplib实现简易FTP客户端的方法
Jun 03 #Python
Python中的深拷贝和浅拷贝详解
Jun 03 #Python
python下paramiko模块实现ssh连接登录Linux服务器
Jun 03 #Python
You might like
便携利器 — TECSUN PL-365简评
2021/03/02 无线电
PHP Zip压缩 在线对文件进行压缩的函数
2010/05/26 PHP
php fsockopen伪造post与get方法的详解
2013/06/14 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
详解PHP防止直接访问.php 文件的实现方法
2017/07/28 PHP
yii2学习教程之5种内置行为类详解
2017/08/03 PHP
javascript实现动态CSS换肤技术的脚本
2007/06/29 Javascript
javascript中最常用的继承模式 组合继承
2010/08/12 Javascript
浅析jQuery中常用的元素查找方法总结
2013/07/04 Javascript
JavaScript实现点击按钮后变灰避免多次重复提交
2013/07/15 Javascript
解决jquery版本冲突的有效方法
2014/09/02 Javascript
JavaScript中的无阻塞加载性能优化方案
2014/10/10 Javascript
angularJS 入门基础
2015/02/09 Javascript
小发现之浅谈location.search与location.hash的问题
2017/06/23 Javascript
十个免费的web前端开发工具详细整理
2017/09/18 Javascript
微信小程序使用字体图标的方法
2019/05/23 Javascript
一看就会的vuex实现登录验证(附案例)
2020/01/09 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
2020/10/18 Javascript
解决ant Design中Select设置initialValue时的大坑
2020/10/29 Javascript
[56:42]VP vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
2018/02/21 Python
对numpy.append()里的axis的用法详解
2018/06/28 Python
windows下numpy下载与安装图文教程
2019/04/02 Python
pygame编写音乐播放器的实现代码示例
2019/11/19 Python
python之pymysql模块简单应用示例代码
2019/12/16 Python
Django Session和Cookie分别实现记住用户登录状态操作
2020/07/02 Python
python+django+selenium搭建简易自动化测试
2020/08/19 Python
一文彻底解决HTML5页面中长按保存图片功能
2019/06/10 HTML / CSS
一级方程式赛车官方网上商店:F1 Store(支持中文)
2018/01/12 全球购物
JSF如何进行表格处理及取值
2012/08/06 面试题
数控专业个人求职信范文
2014/02/05 职场文书
商务英语专业求职信
2014/06/26 职场文书
元旦趣味活动方案
2014/08/22 职场文书
事业单位个人查摆问题及整改措施
2014/10/28 职场文书
合同范本之电脑出租
2019/08/13 职场文书
Java工作中实用的代码优化技巧分享
2022/04/21 Java/Android