跟老齐学Python之有容乃大的list(1)


Posted in Python onSeptember 14, 2014

前面的学习中,我们已经知道了两种python的数据类型:int和str。再强调一下对数据类型的理解,这个世界是由数据组成的,数据可能是数字(注意,别搞混了,数字和数据是有区别的),也可能是文字、或者是声音、视频等。在python中(其它高级语言也类似)把状如2,3这样的数字划分为一个类型,把状如“你好”这样的文字划分一个类型,前者是int类型,后者是str类型(这里就不说翻译的名字了,请看官熟悉用英文的名称,对日后编程大有好处,什么好处呢?谁用谁知道!)。

前面还学习了变量,如果某个变量跟一个int类型的数据用线连着(行话是:赋值),那么这个变量我们就把它叫做int类型的变量;有时候还没赋值呢,是准备让这个变量接收int类型的数据,我们也需要将它声明为int类型的变量。不过,在python里面有一样好处,变量不用提前声明,随用随命名。

这一讲中的list类型,也是python的一种数据类型。翻译为:列表。下面的黑字,请看官注意了:

LIST在python中具有非常强大的功能。

定义

在python中,用方括号表示一个list,[ ]

在方括号里面,可以是int,也可以是str类型的数据,甚至也能够是True/False这种布尔值。看下面的例子,特别注意阅读注释。

>>> a=[]    #定义了一个变量a,它是list类型,并且是空的。
>>> type(a)
<type 'list'>  #用内置函数type()查看变量a的类型,为list
>>> bool(a)   #用内置函数bool()看看list类型的变量a的布尔值,因为是空的,所以为False
False
>>> print a   #打印list类型的变量a
[]

不能总玩空的,来点实的吧。

>>> a=['2',3,'qiwsir.github.io']
>>> a
['2', 3, 'qiwsir.github.io']
>>> type(a)
<type 'list'>
>>> bool(a)
True
>>> print a
['2', 3, 'qiwsir.github.io']

用上述方法,定义一个list类型的变量和数据。

本讲的标题是“有容乃大的list”,就指明了list的一大特点:可以无限大,就是说list里面所能容纳的元素数量无限,当然这是在硬件设备理想的情况下。

list索引

尚记得在《玩转字符串(3)》中,曾经给字符串进行编号,然后根据编号来获取某个或者某部分字符,这样的过程,就是“索引”(index)。

>>> url = "qiwsir.github.io"
>>> url[2]
'w'
>>> url[:4]
'qiws'
>>> url[3:9]
'sir.gi'

在list中,也有类似的操作。只不过是以元素为单位,不是以字符为单位进行索引了。看例子就明白了。

>>> a
['2', 3, 'qiwsir.github.io']
>>> a[0]  #索引序号也是从0开始
'2'
>>> a[1]
3
>>> [2]
[2]
>>> a[:2]  #跟str中的类似,切片的范围是:包含开始位置,到结束位置之前
['2', 3]  #不包含结束位置
>>> a[1:]
[3, 'qiwsir.github.io']
>>> a[-1]  #负数编号从右边开始
'qiwsir.github.io'
>>> a[-2]
3
>>> a[:]
['2', 3, 'qiwsir.github.io']

对list的操作

任何一个行业都有自己的行话,如同古代的强盗,把撤退称之为“扯乎”一样,纵然是一个含义,但是强盗们愿意用他们自己的行业用语,俗称“黑话”。各行各业都如此。这样做的目的我理解有两个,一个是某种保密;另外一个是行外人士显示本行业的门槛,让别人感觉这个行业很高深,从业者有一定水平。

不管怎么,在python和很多高级语言中,都给本来数学角度就是函数的东西,又在不同情况下有不同的称呼,如方法、类等。当然,这种称呼,其实也是为了区分函数的不同功能。

前面在对str进行操作的时候,有一些内置函数,比如s.strip(),这是去掉左右空格的内置函数,也是str的方法。按照一贯制的对称法则,对list也会有一些操作方法。

追加元素

>>> a = ["good","python","I"]   
>>> a
['good', 'python', 'I']
>>> a.append("like")    #向list中添加str类型"like"
>>> a
['good', 'python', 'I', 'like']
>>> a.append(100)      #向list中添加int类型100
>>> a
['good', 'python', 'I', 'like', 100]

官方文档这样描述list.append()方法

list.append(x)
Add an item to the end of the list; equivalent to a[len(a):] = [x].

从以上描述中,以及本部分的标题“追加元素”,是不是能够理解list.append(x)的含义呢?即将新的元素x追加到list的尾部。

列位看官,如果您注意看上面官方文档中的那句话,应该注意到,还有后面半句: equivalent to a[len(a):] = [x],意思是说list.append(x)等效于:a[len(a):]=[x]。这也相当于告诉我们了另外一种追加元素的方法,并且两种方法等效。

>>> a
['good', 'python', 'I', 'like', 100]
>>> a[len(a):]=[3]   #len(a),即得到list的长度,这个长度是指list中的元素个数。
>>> a
['good', 'python', 'I', 'like', 100, 3]
>>> len(a)
6
>>> a[6:]=['xxoo']
>>> a
['good', 'python', 'I', 'like', 100, 3, 'xxoo']

顺便说一下len(),这个是用来获取list,str等类型的数据长度的。在字符串讲解的时候也提到了。

>>> name = 'yeashape'
>>> len(name)    #str的长度,是字符的个数
8
>>> a=[1,2,'a','b'] #list的长度,是元素的个数
>>> len(a)
4
>>> b=['yeashape']  
>>> len(b)
1

下一讲继续list,有容乃大。

Python 相关文章推荐
在Django中创建第一个静态视图
Jul 15 Python
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
Jun 18 Python
Python中使用asyncio 封装文件读写
Sep 11 Python
pandas数据处理基础之筛选指定行或者指定列的数据
May 03 Python
对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解
Jun 28 Python
python3+requests接口自动化session操作方法
Oct 13 Python
Python网页正文转换语音文件的操作方法
Dec 09 Python
python 数据生成excel导出(xlwt,wlsxwrite)代码实例
Aug 23 Python
解决python彩色螺旋线绘制引发的问题
Nov 23 Python
如何打包Python Web项目实现免安装一键启动的方法
May 21 Python
Python爬虫之Selenium实现键盘事件
Dec 04 Python
python 图像增强算法实现详解
Jan 24 Python
跟老齐学Python之一个免费的实验室
Sep 14 #Python
跟老齐学Python之从if开始语句的征程
Sep 14 #Python
跟老齐学Python之眼花缭乱的运算符
Sep 14 #Python
跟老齐学Python之玩转字符串(3)
Sep 14 #Python
跟老齐学Python之玩转字符串(2)
Sep 14 #Python
跟老齐学Python之玩转字符串(1)
Sep 14 #Python
跟老齐学Python之永远强大的函数
Sep 14 #Python
You might like
php cookie中点号(句号)自动转为下划线问题
2014/10/21 PHP
学习php设计模式 php实现观察者模式(Observer)
2015/12/09 PHP
PHP邮件群发机实现代码
2016/02/16 PHP
Yii2设置默认控制器的两种方法
2017/05/19 PHP
PHP培训要多少钱
2017/06/06 PHP
php中try catch捕获异常实例详解
2020/08/06 PHP
js下获得客户端操作系统的函数代码(1:vista,2:windows7,3:2000,4:xp,5:2003,6:2008)
2011/10/31 Javascript
鼠标移到图片上变大显示而不是放大镜效果
2014/06/15 Javascript
简介JavaScript中Math.LOG10E属性的使用
2015/06/14 Javascript
基于JavaScript实现前端文件的断点续传
2016/10/17 Javascript
JS中split()用法(将字符串按指定符号分割成数组)
2016/10/24 Javascript
js实现HashTable(哈希表)的实例分析
2016/11/21 Javascript
浅谈angularjs $http提交数据探索
2017/01/20 Javascript
详解plotly.js 绘图库入门使用教程
2018/02/23 Javascript
快速解决brew安装特定版本flow的问题
2018/05/17 Javascript
jQuery的ztree仿windows文件新建和拖拽功能的实现代码
2018/12/05 jQuery
Vue Components 数字键盘的实现
2019/09/18 Javascript
微信小程序 下拉刷新及上拉加载原理解析
2019/11/06 Javascript
JavaScript实现鼠标经过表格某行时此行变色
2020/11/20 Javascript
[04:59]DOTA2-DPC中国联赛 正赛 Ehome vs iG 选手采访
2021/03/11 DOTA
Python下singleton模式的实现方法
2014/07/16 Python
使用Python编写一个最基础的代码解释器的要点解析
2016/07/12 Python
django模型层(model)进行建表、查询与删除的基础教程
2017/11/21 Python
python dataframe 输出结果整行显示的方法
2018/06/14 Python
python中metaclass原理与用法详解
2019/06/25 Python
对Python3中列表乘以某一个数的示例详解
2019/07/20 Python
python实现超市商品销售管理系统
2019/10/25 Python
python多线程semaphore实现线程数控制的示例
2020/08/10 Python
详解使用Python写一个向数据库填充数据的小工具(推荐)
2020/09/11 Python
澳大利亚电商Catch新西兰站:Catch.co.nz
2020/05/30 全球购物
开会迟到检讨书
2014/01/08 职场文书
2014基建处领导班子“四风”对照检查材料思想汇报
2014/10/04 职场文书
2014年卫生院工作总结
2014/12/03 职场文书
大学生就业推荐表自我评价
2015/03/02 职场文书
运动会开幕式主持词
2015/07/01 职场文书
maven依赖的version声明控制方式
2022/01/18 Java/Android