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 multiprocessing模块中的Pipe管道使用实例
Apr 11 Python
Python中实现三目运算的方法
Jun 21 Python
Python实现爬取逐浪小说的方法
Jul 07 Python
Python对象转JSON字符串的方法
Apr 27 Python
python 开发的三种运行模式详细介绍
Jan 18 Python
python opencv实现任意角度的透视变换实例代码
Jan 12 Python
python 实现批量xls文件转csv文件的方法
Oct 23 Python
简单了解python PEP的一些知识
Jul 13 Python
Django REST framework 如何实现内置访问频率控制
Jul 23 Python
如何在Django配置文件里配置session链接
Aug 06 Python
Golang GBK转UTF-8的例子
Aug 26 Python
解析python实现Lasso回归
Sep 11 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+Html+缓存
2006/12/20 PHP
PHP实现Socket服务器的代码
2008/04/03 PHP
基于php无限分类的深入理解
2013/06/02 PHP
PHP中批量生成静态html(命令行下运行PHP)
2014/04/19 PHP
php提取字符串中网站url地址的方法
2014/12/03 PHP
JSON.parse 解析字符串出错的解决方法
2010/07/08 Javascript
Prototype源码浅析 String部分(四)之补充
2012/01/16 Javascript
用js实现in_array的方法
2013/11/05 Javascript
jQuery实现美观的多级动画效果菜单代码
2015/09/06 Javascript
JavaScript数组去重的五种方法
2015/11/05 Javascript
轻松实现js图片预览功能
2016/01/18 Javascript
需要牢记的JavaScript基础知识
2016/09/25 Javascript
JavaScript实现图片懒加载(Lazyload)
2016/11/28 Javascript
vue.js+Element实现表格里的增删改查
2017/01/18 Javascript
D3.js中强制异步文件读取同步的几种方法
2017/02/06 Javascript
JQuery查找子元素find()和遍历集合each的方法总结
2017/03/07 Javascript
jQuery is not defined 错误原因与解决方法小结
2017/03/19 Javascript
react-native使用leanclound消息推送的方法
2018/08/06 Javascript
vue中Axios的封装与API接口的管理详解
2018/08/09 Javascript
了解JavaScript函数中的默认参数
2019/05/30 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
浅谈Vue.js之初始化el以及数据的绑定说明
2019/11/14 Javascript
python调用fortran模块
2016/04/08 Python
使用Python的Scrapy框架十分钟爬取美女图
2016/12/26 Python
python生成二维码的实例详解
2017/10/29 Python
Python函数的参数常见分类与用法实例详解
2019/03/30 Python
PyQt5创建一个新窗口的实例
2019/06/20 Python
python 寻找离散序列极值点的方法
2019/07/10 Python
Python3自动生成MySQL数据字典的markdown文本的实现
2020/05/07 Python
Python configparser模块封装及构造配置文件
2020/08/07 Python
python获取命令行参数实例方法讲解
2020/11/02 Python
基于Python组装jmx并调用JMeter实现压力测试
2020/11/03 Python
法国一家芭蕾舞鞋公司:Repetto
2018/11/12 全球购物
地方课程教学计划
2015/01/19 职场文书
查看nginx配置文件路径和资源文件路径的方法
2021/03/31 Servers
Java后台生成图片的完整步骤
2021/08/04 Java/Android