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实现监控windows服务并自动启动服务示例
Apr 17 Python
Python操作MySQL数据库9个实用实例
Dec 11 Python
详解python中字典的循环遍历的两种方式
Feb 07 Python
Python算法之图的遍历
Nov 16 Python
Python中getpass模块无回显输入源码解析
Jan 11 Python
Tensorflow之构建自己的图片数据集TFrecords的方法
Feb 07 Python
python语音识别实践之百度语音API
Aug 30 Python
Python分割指定页数的pdf文件方法
Oct 26 Python
django之从html页面表单获取输入的数据实例
Mar 16 Python
python中的对数log函数表示及用法
Dec 09 Python
如何将numpy二维数组中的np.nan值替换为指定的值
May 14 Python
方法汇总:Python 安装第三方库常用
Apr 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
php字符串截取问题
2006/11/28 PHP
linux系统上支持php的 iconv()函数的方法
2011/10/01 PHP
使用phpQuery采集网页的方法
2013/11/13 PHP
Laravel使用支付宝进行支付的示例代码
2017/08/16 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
2019/03/30 PHP
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
2007/08/13 Javascript
Zero Clipboard js+swf实现的复制功能使用方法
2010/03/07 Javascript
firefox下jquery iframe刷新页面提示会导致重复之前动作
2012/12/17 Javascript
JavaScript四种调用模式和this示例介绍
2014/01/02 Javascript
JS获取select的value和text值的简单实例
2014/02/26 Javascript
jQuery Mobile操作HTML5的常用函数总结
2016/05/17 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
2016/06/12 Javascript
纯前端JavaScript实现Excel IO案例分享
2016/08/26 Javascript
jsp 网站引入外部css或者js失效问题解决
2016/10/31 Javascript
socket.io学习教程之基础介绍(一)
2017/04/29 Javascript
JS 中LocalStorage和SessionStorage的使用
2017/08/17 Javascript
详解搭建es6+devServer简单开发环境
2018/09/25 Javascript
JS跨域请求的问题解析
2018/12/03 Javascript
Vue.js 中的实用工具方法【推荐】
2019/07/04 Javascript
vue通过video.js解决m3u8视频播放格式的方法
2019/07/30 Javascript
layui 富文本赋值,取值,取纯文本值的实例
2019/09/18 Javascript
基于layui的下拉列表的数据回显方法
2019/09/24 Javascript
vue 扩展现有组件的操作
2020/08/14 Javascript
使用Python编写简单的端口扫描器的实例分享
2015/12/18 Python
Django获取model中的字段名和字段的verbose_name方式
2020/05/19 Python
linux系统下pip升级报错的解决方法
2021/01/31 Python
CSS3字体效果的设置方法小结
2016/06/13 HTML / CSS
美国折扣网站:jClub
2017/08/07 全球购物
金融专业个人求职信范文
2013/11/28 职场文书
大学生村官任职感言
2014/01/09 职场文书
天鹅湖观后感
2015/06/09 职场文书
Nginx解决403 forbidden的完整步骤
2021/04/01 Servers
使用react-virtualized实现图片动态高度长列表的问题
2021/05/28 Javascript
为什么MySQL选择Repeatable Read作为默认隔离级别
2021/07/26 MySQL
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python