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装饰器与递归算法详解
Feb 18 Python
使用 Python 实现微信公众号粉丝迁移流程
Jan 03 Python
解决Ubuntu pip 安装 mysql-python包出错的问题
Jun 11 Python
python 实现提取某个索引中某个时间段的数据方法
Feb 01 Python
python中的协程深入理解
Jun 10 Python
详解python中的模块及包导入
Aug 30 Python
python 多进程并行编程 ProcessPoolExecutor的实现
Oct 11 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
Dec 05 Python
使用opencv将视频帧转成图片输出
Dec 10 Python
完美解决pycharm导入自己写的py文件爆红问题
Feb 12 Python
python调用win32接口进行截图的示例
Nov 11 Python
聊一聊python常用的编程模块
May 14 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简单系统查询模块代码打包下载
2008/06/07 PHP
php 什么是PEAR?
2009/03/19 PHP
PHP删除数组中的特定元素的代码
2012/06/28 PHP
php mail to 配置详解
2014/01/16 PHP
PHP计算日期相差天数实例分析
2016/02/23 PHP
zen cart实现订单中增加paypal中预留电话的方法
2016/07/12 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
JS的数组的扩展实例代码
2008/07/09 Javascript
jQuery html()等方法介绍
2009/11/18 Javascript
js 分页全选或反选标识实现代码
2011/08/09 Javascript
JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)
2014/10/17 Javascript
Node.js中Request模块处理HTTP协议请求的基本使用教程
2016/03/31 Javascript
javascript模块化简单解析
2016/04/07 Javascript
瀑布流的实现方式(原生js+jquery+css3)
2020/06/28 Javascript
Javascript vue.js表格分页,ajax异步加载数据
2016/10/24 Javascript
3分钟掌握常用的JS操作JSON方法总结
2017/04/25 Javascript
基于jquery实现多选下拉列表
2017/08/02 jQuery
Nodejs 和Session 原理及实战技巧小结
2017/08/25 NodeJs
vue 实现的树形菜的实例代码
2018/03/19 Javascript
Vue核心概念Action的总结
2019/01/18 Javascript
python函数返回多个值的示例方法
2013/12/04 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
2017/10/20 Python
python中hashlib模块用法示例
2017/10/30 Python
python操作redis方法总结
2018/06/06 Python
pycharm 实现显示project 选项卡的方法
2019/01/17 Python
python实现五子棋人机对战游戏
2020/03/25 Python
python使用writerows写csv文件产生多余空行的处理方法
2019/08/01 Python
Python队列RabbitMQ 使用方法实例记录
2019/08/05 Python
python tkinter图形界面代码统计工具(更新)
2019/09/18 Python
伦敦香水公司:The London Perfume Company
2019/11/13 全球购物
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
2014/07/27 面试题
物流业务员岗位职责
2014/02/08 职场文书
2014年小学元旦活动方案
2014/02/12 职场文书
退休党员个人对照检查材料思想汇报
2014/09/29 职场文书
比较几种Redis集群方案
2021/06/21 Redis