Python入门篇之列表和元组

852次阅读  |  发布于5年以前

列表和元组的主要区别在于,列表可以修改,元组则不能。一般情况下,在几乎所有的情况下列表都可以代替元组

例如:使用序列可以表示数据库中一个人的信息(姓名,年龄)

复制代码 代码如下:

edward=['Edward Gumby',42]

序列还可以包含其他序列

复制代码 代码如下:

edward=['Edward Gumby',42]
john=['John Smith',50]
database=[edward,john]
database
[['Edward Gumby', 42], ['John Smith', 50]]

通用序列操作
所有的序列操作都可以进行某些特定的操作。这些操作包括:索引、分片、加、乘以及检查某个元素是否属于序列的成员

索引

序列中的所有元素都是有编号的--从0开始递增。这些元素可以通过编号分别访问,如下:

复制代码 代码如下:

greeting='hello'
greeting[0]
'h'
greeting[-1]
'o'
'hello'[1]
'e'

如果一个函数调用返回一个序列,那么可以直接对返回结果进行索引操作,例如:

复制代码 代码如下:

fourth=raw_input('Year:')[3]
Year:2005
fourth
'5'
View Code

运行结果:

复制代码 代码如下:

Year: 1974
Month(1-12): 8
Day(1-31): 16
August 16th, 1974

分片

使用分片操作来访问一定范围内的元素,分片通过冒号相隔的两个索引来实现:

复制代码 代码如下:

tag='Python](http://www.python.org">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:6]
[4, 5, 6]
numbers[0:1]
[1]

1、优雅的捷径

访问最后的三个元素,当然可以进行显示的操作

复制代码 代码如下:

numbers[7:10]
[8, 9, 10]
numbers[-3:-1]
[8, 9]
numbers[-3:0]
[]
numbers[-3:]
[8, 9, 10]

只有最后一个分片完成任务,这种方法同样适用序列开始的元素:

复制代码 代码如下:

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

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

复制代码 代码如下:

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

2、更大的步长

分片还有第三个参数--步长,通常都是隐式设置的,在一般情况下,步长是1,不能为0,但是可以为负数,即从右往左提取元素

测试代码
序列相加

通过使用加号可以进行序列的连接操作:

复制代码 代码如下:

[1,2,3]+[4,5,6]
[1, 2, 3, 4, 5, 6]
'hello.'+'world!'
'hello.world!'
[1,2,3]+'world!'

Traceback (most recent call last):
File "<pyshell#107>", line 1, in
[1,2,3]+'world!'
TypeError: can only concatenate list (not "str") to list

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8