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使用os模块的os.walk遍历文件夹示例
Jan 27 Python
Python下的subprocess模块的入门指引
Apr 16 Python
Python捕捉和模拟鼠标事件的方法
Jun 03 Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
Jul 20 Python
python字符串与url编码的转换实例
May 10 Python
python pandas消除空值和空格以及 Nan数据替换方法
Oct 30 Python
PyCharm鼠标右键不显示Run unittest的解决方法
Nov 30 Python
对python中数据集划分函数StratifiedShuffleSplit的使用详解
Dec 11 Python
Python sklearn KFold 生成交叉验证数据集的方法
Dec 11 Python
Python实现bilibili时间长度查询的示例代码
Jan 14 Python
Python 如何对文件目录操作
Jul 10 Python
改变 Python 中线程执行顺序的方法
Sep 24 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
php防止站外远程提交表单的方法
2014/10/20 PHP
PHP批量修改文件名称的方法分析
2017/02/27 PHP
javascript学习笔记(六) Date 日期类型
2012/06/19 Javascript
在javascript中执行任意html代码的方法示例解读
2013/12/25 Javascript
通过JS来判断页面控件是否获取焦点
2014/01/03 Javascript
js中document.write使用过程中的一点疑问解答
2014/03/20 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
2014/05/12 Javascript
JavaScript的事件代理和委托实例分析
2015/03/25 Javascript
JavaScript常用代码书写规范的超全面总结
2016/09/11 Javascript
Angular ng-repeat 对象和数组遍历实例
2016/09/14 Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
2017/03/13 Javascript
iscroll动态加载数据完美解决方法
2017/07/18 Javascript
JS图片延迟加载插件LazyImgv1.0用法分析【附demo源码下载】
2017/09/04 Javascript
jQuery插件实现非常实用的tab栏切换功能【案例】
2019/02/18 jQuery
js实现多张图片每隔一秒切换一张图片
2019/07/29 Javascript
python基础知识小结之集合
2015/11/25 Python
Python 中Django验证码功能的实现代码
2019/06/20 Python
python爬虫selenium和phantomJs使用方法解析
2019/08/08 Python
python并发编程多进程 互斥锁原理解析
2019/08/20 Python
运行tensorflow python程序,限制对GPU和CPU的占用操作
2020/02/06 Python
Python描述符descriptor使用原理解析
2020/03/21 Python
Python使用Pyqt5实现简易浏览器(最新版本测试过)
2020/04/27 Python
Python爬虫爬取微信朋友圈
2020/08/06 Python
Python selenium爬取微信公众号文章代码详解
2020/08/12 Python
python对 MySQL 数据库进行增删改查的脚本
2020/10/22 Python
Swisse官方海外旗舰店:澳大利亚销量领先,自然健康品牌
2017/12/15 全球购物
navabi英国:设计师大码女装
2019/06/25 全球购物
安德玛菲律宾官网:Under Armour菲律宾
2020/07/28 全球购物
PHP如何调用MYSQL存储过程
2014/05/30 面试题
高考自主招生自荐信
2013/10/20 职场文书
会议欢迎标语
2014/06/30 职场文书
期末个人总结范文
2015/02/13 职场文书
业务员辞职信范文
2015/03/02 职场文书
2015医德医风个人工作总结
2015/04/02 职场文书
货款欠条范本
2015/07/03 职场文书
2019年入党思想汇报格式与要求
2019/06/25 职场文书