Python 列表list使用介绍


Posted in Python onNovember 30, 2014
一组有序项目的集合
可变的数据类型【可进行增删改查】
列表中可以包含任何数据类型,也可包含另一个列表【可任意组合嵌套】
列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔
列表可通过序号访问其中成员

定义

>>> l = [] #空列表
>>> l = [1,2,3]
>>> l = [1,2,3,['a','b']]
>>> l = list('linuxeye')
>>> l
['l', 'i', 'n', 'u', 'x', 'e', 'y', 'e']
>>> l = list(range(5))
>>> l
[0, 1, 2, 3, 4]
>>> l = '1;2;3;4;5'.split(';')
>>> l
['1', '2', '3', '4', '5']

内建函数list(a_sequence) 可以将一个序列转为列表

索引
正索引是编号是从左到右,0开始;负索引编号是从右往左,-1、-2 …;取范围值都是从左至右

>>> LanguageList = ['Python','Shell','Perl','PHP','java','C',"C++","Lisp"]
>>> LanguageList[0] #取第一个值
'Python'
>>> LanguageList[3] #第四个值
'PHP'
>>> LanguageList[3:]
['PHP', 'java', 'C', 'C++', 'Lisp']
>>> LanguageList[:3]
['Python', 'Shell', 'Perl']
>>> LanguageList[2:5]
['Perl', 'PHP', 'java']
>>> LanguageList[-1] #倒数第一个值
'Lisp'
>>> LanguageList[-2] #倒数第二个值
'C++'
>>> LanguageList[-5:]
['PHP', 'java', 'C', 'C++', 'Lisp']
>>> LanguageList[-5:-2]
['PHP', 'java', 'C']
>>> LanguageList[:-2]
['Python', 'Shell', 'Perl', 'PHP', 'java', 'C']

增加元素

>>> LanguageList
['Python', 'Shell', 'Perl', 'PHP', 'java', 'C', 'C++', 'Lisp']
>>> LanguageList.append('GO')
>>> LanguageList
['Python', 'Shell', 'Perl', 'PHP', 'java', 'C', 'C++', 'Lisp', 'GO']
>>> LanguageList.insert(3,'Python') #往PHP元素前插入
>>> LanguageList
['Python', 'Shell', 'Perl', 'Python', 'PHP', 'java', 'C', 'C++', 'Lisp', 'GO']
>>> LanguageList.extend(['Ruby','C#'])
>>> LanguageList
['Python', 'Shell', 'Perl', 'Python', 'PHP', 'java', 'C', 'C++', 'Lisp', 'GO', 'Ruby', 'C#']

搜索

>>> LanguageList = ['Python', 'Shell', 'Perl', 'Python', 'PHP', 'java', 'C', 'C++', 'Lisp', 'GO', 'Ruby', 'C#']
>>> LanguageList.index('Python')
0
>>> LanguageList.index('C')
6
>>> LanguageList.index('c')
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
ValueError: list.index(x): x not in list
>>> 'c' in LanguageList
False
>>> LanguageList.index('Python') #统计一个元素的出现次数
2

删除元素

>>> LanguageList = ['Python', 'Shell', 'Perl', 'Python', 'PHP', 'java', 'C', 'C++', 'Lisp', 'GO', 'Ruby', 'C#']
>>> LanguageList.remove('C')
>>> LanguageList.remove('Python')
>>> LanguageList.remove('c')
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
>>> LanguageList.pop()
'C#'
>>> LanguageList
['Shell', 'Perl', 'Python', 'PHP', 'java', 'C++', 'Lisp', 'GO', 'Ruby']
>>> LanguageList.pop(-2)
['Shell', 'Perl', 'Python', 'PHP', 'java', 'C++', 'Lisp', 'Ruby']
>>> del LanguageList[-3:-1]
>>> LanguageList
['Shell', 'Perl', 'Python', 'PHP', 'java', 'Ruby']

remove从列表中只删除一个值的首次出现。
pop会做两件事: 删除列表的最后一个元素, 然后返回删除元素的值。

修改元素

>>> LanguageList = ['Python','Shell', 'Perl', 'Python', 'PHP', 'java', 'Ruby']
>>> LanguageList[-2] = 'C'
>>> LanguageList
['Python', 'Shell', 'Perl', 'Python', 'PHP', 'C', 'Ruby']
>>> LanguageList[LanguageList.index('C')] = 'JAVA'
>>> LanguageList
['Python', 'Shell', 'Perl', 'Python', 'PHP', 'JAVA', 'Ruby']

运算符

>>> LanguageList
['Shell', 'Perl', 'Python', 'PHP', 'java', 'C++', 'Lisp', 'GO', 'Ruby']
>>> LanguageList = LanguageList + ['Python','C']
>>> LanguageList
['Shell', 'Perl', 'Python', 'PHP', 'java', 'C++', 'Lisp', 'GO', 'Ruby', 'Python', 'C']
>>> LanguageList += ['java']
>>> LanguageList
['Shell', 'Perl', 'Python', 'PHP', 'java', 'C++', 'Lisp', 'GO', 'Ruby', 'Python', 'C', 'java']
>>> NumList = [1,2,3] * 3
>>> NumList
[1, 2, 3, 1, 2, 3, 1, 2, 3]

排序

>>> NumList = [2,5,3,6,1,4]
>>> NumList.reverse()
>>> NumList
[4, 1, 6, 3, 5, 2]
>>> NumList[::-1] #和reverse效果相同
>>> NumList
[2, 5, 3, 6, 1, 4]
>>> NumList.sort()
>>> NumList
[1, 2, 3, 4, 5, 6]

sort可接受参数

cmp,比较函数,接受两个参数,小于时返回负,大于返回正,相等返回0
key,指定排序键
reverse,指定是否反序

列表的比较操作 , 隐式调用cmp方法 , 比较规则是逐个扫描元素进行比较, 如果可以比较 , 则比较, 如果相等扫描下一个元素 , 如果不相等返回结果 , 如果两个元素类型不可以比较 , 就比较两个对象的 id()值。如果一直相等 ,直到一个列表扫描结束 , 那么返回较长的列表较大

>>> L = [(13,54),(11,59),(15,55),(12,57),(10,56)]
>>> L.sort(key=lambda x:x[1])
>>> L
[(13, 54), (15, 55), (10, 56), (12, 57), (11, 59)]
>>> L.sort(key=lambda x:x[1],reverse=1) #或者reverse=True
>>> L
[(11, 59), (12, 57), (10, 56), (15, 55), (13, 54)]

sort与sorted函数区别

NumList = [2, 5, 3, 6, 1, 4]
>>> sorted(NumList)
[1, 2, 3, 4, 5, 6]
>>> NumList
[2, 5, 3, 6, 1, 4]
>>> NumList.sort()
>>> NumList
[1, 2, 3, 4, 5, 6]

sort: 在原list上排序,不返回排序后的list
sorted: 不改变原list,返回排序后的list

Python 相关文章推荐
Python函数式编程指南(二):从函数开始
Jun 24 Python
Python使用sftp实现上传和下载功能(实例代码)
Mar 14 Python
Python 专题三 字符串的基础知识
Mar 19 Python
详解Python函数可变参数定义及其参数传递方式
Aug 02 Python
Python安装及Pycharm安装使用教程图解
Sep 20 Python
Django2 连接MySQL及model测试实例分析
Dec 10 Python
python实现超级马里奥
Mar 18 Python
解决Jupyter NoteBook输出的图表太小看不清问题
Apr 16 Python
Django的ListView超详细用法(含分页paginate)
May 21 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
Sep 17 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
Jan 27 Python
Python函数中apply、map、applymap的区别
Nov 27 Python
Python 字典dict使用介绍
Nov 30 #Python
Python 序列化 pickle/cPickle模块使用介绍
Nov 30 #Python
Linux下Python获取IP地址的代码
Nov 30 #Python
Python re模块介绍
Nov 30 #Python
Python os模块介绍
Nov 30 #Python
Python实现的检测网站挂马程序
Nov 30 #Python
Python实现网站文件的全备份和差异备份
Nov 30 #Python
You might like
Php Image Resize图片大小调整的函数代码
2011/01/17 PHP
详解PHP错误日志的获取方法
2015/07/20 PHP
在UpdatePanel内jquery easyui效果失效的解决方法
2010/04/11 Javascript
jquery分页插件AmSetPager(自写)
2013/04/15 Javascript
兼容IE和Firefox火狐的上下、左右循环无间断滚动JS代码
2013/04/19 Javascript
Jquery中children与find之间的区别详细解析
2013/11/29 Javascript
jquery live()重复绑定的解决方法介绍
2014/01/03 Javascript
浅析jQuery(function(){})与(function(){})(jQuery)之间的区别
2014/01/09 Javascript
jquery 新建的元素事件绑定问题解决方案
2014/06/12 Javascript
jQuery实现购物车计算价格功能的方法
2015/03/25 Javascript
PHP结合jQuery实现红蓝投票功能特效
2015/07/22 Javascript
jQuery实现折叠、展开的菜单组效果代码
2015/09/16 Javascript
高性能JavaScript循环语句和条件语句
2016/01/20 Javascript
深入理解JQuery循环绑定事件
2016/06/02 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
2016/10/28 Javascript
JS常用加密编码与算法实例总结
2016/12/22 Javascript
用vue的双向绑定简单实现一个todo-list的示例代码
2017/08/03 Javascript
js 将线性数据转为树形的示例代码
2019/05/28 Javascript
nodeJs的安装与npm全局环境变量的配置详解
2020/01/06 NodeJs
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
Python写的创建文件夹自定义函数mkdir()
2014/08/25 Python
Python基础知识_浅谈用户交互
2017/05/31 Python
Python基于scapy实现修改IP发送请求的方法示例
2017/07/08 Python
动态规划之矩阵连乘问题Python实现方法
2017/11/27 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
2018/03/13 Python
python os.path模块常用方法实例详解
2018/09/16 Python
python实现批量注册网站用户的示例
2019/02/22 Python
Python获取好友地区分布及好友性别分布情况代码详解
2019/07/10 Python
Python使用Turtle库绘制一棵西兰花
2019/11/23 Python
Python实现线性判别分析(LDA)的MATLAB方式
2019/12/09 Python
详解Python IO口多路复用
2020/06/17 Python
怎样让char类型的东西转换成int类型
2013/12/09 面试题
大专学生推荐信范文
2013/11/19 职场文书
教师辞职书范文
2015/02/26 职场文书
搞笑的婚礼主持词
2015/06/29 职场文书
读后感怎么写?书写读后感的基本技巧!
2019/12/10 职场文书