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及Django框架生成二维码的方法分析
Jan 31 Python
python时间日期函数与利用pandas进行时间序列处理详解
Mar 13 Python
python 日期操作类代码
May 05 Python
Python XML转Json之XML2Dict的使用方法
Jan 15 Python
python批量识别图片指定区域文字内容
Apr 30 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
Jul 04 Python
python读取Excel表格文件的方法
Sep 02 Python
pygame实现俄罗斯方块游戏(基础篇1)
Oct 29 Python
Python连接字符串过程详解
Jan 06 Python
使用Python来做一个屏幕录制工具的操作代码
Jan 18 Python
python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例
Mar 06 Python
python sleep和wait对比总结
Feb 03 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编程效率的53个要点(经验小结)
2010/09/04 PHP
fleaphp常用方法分页之Pager使用方法
2011/04/23 PHP
PHP学习笔记 (1) 环境配置与代码调试
2011/06/19 PHP
PHP冒泡算法详解(递归实现)
2014/11/10 PHP
PHP获得数组交集与差集的方法
2015/06/10 PHP
PHP7 新特性详细介绍
2016/09/06 PHP
JCalendar 日历控件 v1.0 beta[兼容IE&amp;Firefox] 有文档和例子
2007/05/30 Javascript
javascript replace方法与正则表达式
2008/02/19 Javascript
jquery实现二级导航下拉菜单效果
2015/12/18 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
jQuery实现别踩白块儿网页版小游戏
2017/01/18 Javascript
express框架实现基于Websocket建立的简易聊天室
2017/08/10 Javascript
记一次webapck4 配置文件无效的解决历程
2018/09/19 Javascript
laydate时间日历插件使用方法详解
2018/11/14 Javascript
30分钟快速实现小程序语音识别功能
2018/11/27 Javascript
详解angularjs4部署文件过大解决过程
2018/12/05 Javascript
如何使用pm2快速将项目部署到远程服务器
2019/03/12 Javascript
vue + el-form 实现的多层循环表单验证
2020/11/25 Vue.js
python中cPickle用法例子分享
2014/01/03 Python
使用python编写android截屏脚本双击运行即可
2014/07/21 Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
2017/07/06 Python
Python使用cx_Freeze库生成msi格式安装文件的方法
2018/07/10 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
2020/04/20 Python
使用HTML5技术开发一个属于自己的超酷颜色选择器
2013/09/22 HTML / CSS
html5通过postMessage进行跨域通信的方法
2017/12/04 HTML / CSS
SISLEY希思黎官方旗舰店:享誉全球的奢华植物美容品牌
2018/04/25 全球购物
ASOS比利时:英国线上零售商及自有品牌
2018/07/29 全球购物
校长就职演讲稿
2014/01/06 职场文书
餐厅销售主管职责范本
2014/02/19 职场文书
教师师德承诺书
2014/03/26 职场文书
安全协议书范本
2014/04/21 职场文书
化工厂员工工作总结
2015/10/15 职场文书
《惊弓之鸟》教学反思
2016/02/20 职场文书
入党转正申请书范文
2019/05/20 职场文书
JavaScript嵌入百度地图API的最详细方法
2021/04/16 Javascript
2022年四月新番
2022/03/15 日漫