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的绘图工具matplotlib使用实例
Jul 03 Python
Python计算程序运行时间的方法
Dec 13 Python
简单介绍Python中的try和finally和with方法
May 05 Python
python实现数独算法实例
Jun 09 Python
python 从文件夹抽取图片另存的方法
Dec 04 Python
python交互界面的退出方法
Feb 16 Python
python3中eval函数用法使用简介
Aug 02 Python
python matplotlib折线图样式实现过程
Nov 04 Python
Python处理mysql特殊字符的问题
Mar 02 Python
Python接口开发实现步骤详解
Apr 26 Python
python实现文件分片上传的接口自动化
Nov 19 Python
Python实现视频中添加音频工具详解
Dec 06 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
ASP知识讲座四
2006/10/09 PHP
简单的PHP图片上传程序
2008/03/27 PHP
Zend Framework教程之Zend_Config_Ini用法分析
2016/03/23 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
2017/05/20 PHP
phpinfo的知识点总结
2019/10/10 PHP
jquery HotKeys轻松搞定键盘事件代码
2008/08/30 Javascript
javascript 导出数据到Excel(处理table中的元素)
2009/12/18 Javascript
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
没有document.getElementByName方法
2013/08/19 Javascript
jquery 操作iframe的几种方法总结
2013/12/13 Javascript
JavaScript实现的字符串replaceAll函数代码分享
2015/04/02 Javascript
javascript单页面手势滑屏切换原理详解
2016/03/21 Javascript
如何使用AngularJs打造权限管理系统【简易型】
2016/05/09 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
jquery.picsign图片标注组件实例详解
2018/02/02 jQuery
用Vue.js在浏览器中实现裁剪图像功能
2019/06/18 Javascript
[01:28:43]2014 DOTA2华西杯精英邀请赛5 24 DK VS CIS
2014/05/25 DOTA
[01:11:46]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第一场 2月23日
2021/03/11 DOTA
使用Python脚本生成随机IP的简单方法
2015/07/30 Python
浅谈Python数据类型判断及列表脚本操作
2016/11/04 Python
Python分治法定义与应用实例详解
2017/07/28 Python
Python操作qml对象过程详解
2019/09/26 Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
2020/02/28 Python
Python常用数据分析模块原理解析
2020/07/20 Python
Pytho爬虫中Requests设置请求头Headers的方法
2020/09/22 Python
The Outnet亚太地区:折扣设计师时装店
2019/12/05 全球购物
校园广播稿500字
2014/02/04 职场文书
大学生自我评价200字(4篇)
2014/09/17 职场文书
消防演习通知
2015/04/25 职场文书
虎兄虎弟观后感
2015/06/12 职场文书
学校财务管理制度
2015/08/04 职场文书
用python开发一款操作MySQL的小工具
2021/05/12 Python
python实现剪贴板的操作
2021/07/01 Python
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL
「约定的梦幻岛」作画发布诺曼生日新绘
2022/03/21 日漫
一文搞懂Java中的注解和反射
2022/06/21 Java/Android