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中你应该知道的一些内置函数
Mar 31 Python
Pycharm学习教程(5) Python快捷键相关设置
May 03 Python
Python MD5加密实例详解
Aug 02 Python
基于Django的python验证码(实例讲解)
Oct 23 Python
python如何压缩新文件到已有ZIP文件
Mar 14 Python
python面向对象多线程爬虫爬取搜狐页面的实例代码
May 31 Python
python实现连续图文识别
Dec 18 Python
Python enumerate函数功能与用法示例
Mar 01 Python
简单了解Python生成器是什么
Jul 02 Python
Python循环结构的应用场景详解
Jul 11 Python
python numpy数组中的复制知识解析
Feb 03 Python
Python tkinter界面实现历史天气查询的示例代码
Aug 23 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发送HTTP请求的几种方式
2017/07/25 PHP
javascript中的变量是传值还是传址的?
2010/04/19 Javascript
JavaScript/jQuery 表单美化插件小结
2012/02/14 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
2013/02/05 Javascript
jQuery写的日历(包括日历的样式及功能)
2013/04/23 Javascript
利用JavaScript实现新闻滚动效果(实例代码)
2013/11/27 Javascript
AngularJS内置指令
2015/02/04 Javascript
JS实现双击编辑可修改状态的方法
2015/08/14 Javascript
Bootstrap基本组件学习笔记之列表组(11)
2016/12/07 Javascript
微信小程序--onShareAppMessage分享参数用处(页面分享)
2017/04/18 Javascript
bootstrap daterangepicker双日历时间段选择控件详解
2017/06/15 Javascript
Vue中建立全局引用或者全局命令的方法
2017/08/21 Javascript
Node.js中使用mongoose操作mongodb数据库的方法
2017/09/12 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
Android 自定义view仿微信相机单击拍照长按录视频按钮
2019/07/19 Javascript
JS中间件设计模式的深入探讨与实例分析
2020/04/11 Javascript
python encode和decode的妙用
2009/09/02 Python
Python使用shelve模块实现简单数据存储的方法
2015/05/20 Python
python执行CMD指令,并获取返回的方法
2018/12/19 Python
python实现K近邻回归,采用等权重和不等权重的方法
2019/01/23 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
2019/01/29 Python
Python enumerate函数遍历数据对象组合过程解析
2019/12/11 Python
pytorch模型存储的2种实现方法
2020/02/14 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
2020/04/24 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
2021/02/01 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
HTML5新特性之用SVG绘制微信logo
2016/02/03 HTML / CSS
美国宠物用品网站:Value Pet Supplies
2018/03/17 全球购物
阿联酋最好的手机、电子产品和家用电器网上商店:Eros Digital Home
2020/08/09 全球购物
什么是ESB?请介绍一下ESB?
2015/05/27 面试题
师范学院毕业生求职信范文
2013/12/26 职场文书
管理部副部长岗位职责范文
2014/03/09 职场文书
霸气押韵的班级口号
2014/06/09 职场文书
公司委托书格式范文
2014/10/09 职场文书
公司感谢信范文
2015/01/22 职场文书
三下乡活动心得体会
2016/01/23 职场文书