栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python列表和元组

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python列表和元组

概述

在Python中,最基本的数据结构是序列。序列中每个元素被分配一个序号–即元素的位置,也称为索引。第一个索引是0,第二个是1,以此类推。

序列概览

Python包含6种内建的序列,本章重点讨论最常用的两种类型:列表和元组。其他的内建序列类型有字符串、Unicode字符串、buffer对象和xrange对象。
列表和元组的主要区别在于,列表可以修改,元组则不能。
一般来说,在自己编写的程序中,几乎在所有的情况下都可以用列表替代元组。
可以用序列表示数据库中一个人的信息一一第1个元素是姓名,第2个元素是年龄。根据上述内容编写一个列表(列表的各个元素通过逗号分隔,写在方括号中),如下列所示:

edward = ['Edward Gumby', 42]

同时,序列也可以包含其他的序列,因此,构建如下一个人员信息的列表也是可以的,这个列表就是你的数据库:

edward = ['Edward Gumby', 42]
print(edward)
['Edward Gumby', 42]
john = ['John Smith', 50]
database = [edward, john]
print(database)
[['Edward Gumby', 42], ['John Smith', 50]]
通用序列操作

所有序列类型都可以进行某些特定的操作。这些操作包括:索引(indexing)、分片(slicing)、加(adding)、乘(multiplying)以及检查某个元素是否属于序列的成员(成员资格)。除此之外,Python还有计算序列长度、找出最大元素和最小元素的内建函数。

索引

序列中的所有元素都是有编号的,从0开始递增。

greeting = 'hello'
greeting[0]
'h'

这就是索引。可以通过索引获取元素。索引序列都可以通过这种方式进行索引。使用负数索引时,Python会从右边,也就是从最后一个元素开始计数。最后一个元素的位置编号时-1。

分片

与使用索引来访问单个元素类似,可以使用分片操作访问一定范围内的元素。分片通过冒号隔开的两个索引来实现。

tag = 'Python web site'
tag
'Python web site'
tag[9:30]
'http://www.python.org'
tag[32:-4]
'Python web site'

分片操作对于提取序列的一部分时很有用的。而编号在这里显得尤为重要。第一个索引时要提取的第一个元素的编号,而最后的索引则是分片之后剩余部分的第一个元素的编号。因此分片符合是前闭后开的,简而言之,分片操作的实现需要提供两个索引作为边界,第一个索引的元素是包含在分片内的,而第二个则不包含在分片内。
如果分片所得部分包含序列结尾的元素,那么只需要置空最后一个索引即可:

numbers = [1,2,3,4,5,6,7,8,9,10]
numbers[-3:]
[8, 9, 10]

这种方法同样适用于序列开始的元素

numbers[:3]
[1, 2, 3]

实际上,如果需要复制整个序列,可以将两个索引都置空:

numbers[:]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
更大的步长

进行分片的时候,分片的开始和结束点需要进行指定(不管是直接还是间接)。而另外一个参数(在python2.3加入到内建类型)一一步长(step length)一一通常都是隐式设置的。在普通的分片中,步长是1一一分片操作就是按照这个步长逐步遍历序列的元素,然后返回开始和结束点之间的所有元素。

numbers[0:10:1]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

如果步长被设置为比1大的数,那么就会跳过某些元素。例如,步长为2的分片包括的是从开始到结束每隔1隔的元素。

numbers[0:10:2]
[1, 3, 5, 7, 9]

步长可以为负数,此时分片从右到左提取元素:

numbers[8:3:-1]
[9, 8, 7, 6, 5]
numbers[20:0:-2]
[10, 8, 6, 4, 2]

对于一个正数步长,Python会从序列的头部开始向右提取元素,直到最后一个元素;而对于负数步长,则是从序列的尾部开始向左提取元素,直到第一个元素。

序列相加
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/580636.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号