Python入门篇之列表和元组
列表和元组的主要区别在于,列表可以修改,元组则不能。一般情况下,在几乎所有的情况下列表都可以代替元组
例如:使用序列可以表示数据库中一个人的信息(姓名,年龄)
>>>edward=['EdwardGumby',42]
序列还可以包含其他序列
>>>edward=['EdwardGumby',42] >>>john=['JohnSmith',50] >>>database=[edward,john] >>>database [['EdwardGumby',42],['JohnSmith',50]]
通用序列操作
所有的序列操作都可以进行某些特定的操作。这些操作包括:索引、分片、加、乘以及检查某个元素是否属于序列的成员
索引
序列中的所有元素都是有编号的--从0开始递增。这些元素可以通过编号分别访问,如下:
>>>greeting='hello' >>>greeting[0] 'h' >>>greeting[-1] 'o' >>>'hello'[1] 'e'
如果一个函数调用返回一个序列,那么可以直接对返回结果进行索引操作,例如:
>>>fourth=raw_input('Year:')[3] Year:2005 >>>fourth '5' ViewCode
运行结果:
>>> Year:1974 Month(1-12):8 Day(1-31):16 August16th,1974
分片
使用分片操作来访问一定范围内的元素,分片通过冒号相隔的两个索引来实现:
>>>tag='<aherf="http://www.python.org">Pythonwebsite</a>' >>>tag[9:30] 'http://www.python.org' >>>tag[32:-4] 'Pythonwebsite'
第一个索引是需要提取部分的第一个元素的编号,而最后的索引则是分片之后剩下部分的第一个元素的编号
>>>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(mostrecentcalllast): File"<pyshell#107>",line1,in<module> [1,2,3]+'world!' TypeError:canonlyconcatenatelist(not"str")tolist