python(一)列表与元组之序列基本操作

来源:互联网 发布:淘宝渠道管理在哪里 编辑:程序博客网 时间:2024/05/16 12:28

python学习笔记是摘自挪威Magnus Lie Hetland 教授著,司维 ,曾军崴,谭颖华译,钟读杭审校的Python基础教程(第二版 修订版),对此感激不尽,鄙人的入门书,在此简单总结整理,记录心得。
在python中,最基本的数据结构是序列,序列中的每一个元素被分配一个索引,第一个是0,第二个是1,以此类推。
Python包含6中内建序列:列表(可修改),元组(不可修改),字符串,unicode字符串,buffer对象,xrange对象。
什么是列表?列表的各个元素通过逗号分隔,写在方括号中。形如:idol = [‘zhaoliying’,18]
对于序列通用的操作有:索引,分片,加,乘,成员资格,计算序列长度,找出最大元素和最小元素的内建函数。
1 :索引

>>> idol = 'zhaoliying'>>> idol[0]'z'>>> idol[-1]  #最后一个元素编号是-1'g':

2:分片(访问一定范围内的元素,通过冒号隔开的两个索引来实现,用于提取序列的一部分)
两个索引相当于两个边界,分片结果包含第一个索引的元素,不包含第二个索引的元素。

>>> idol = '<a idol="http://www.yingbao.org"> idol</a>'>>> idol[4:12]'dol="htt'>>> number = [2,4,6,7,8,1,3,5,9,10]>>> number[2:4][6, 7]>>> number[-4:-1]   #列表结尾索引是-1[3, 5, 9]>>> number[-4:0][]>>> number[-4:]   #若分片结果要包含序列结尾,置空第二个索引即可[3, 5, 9, 10]>>> number[:4]    #若分片结果要包含序列开始,置空第一个索引即可[2, 4, 6, 7]>>> number[:]      #若想得到整个序列,将两个索引都置空即可[2, 4, 6, 7, 8, 1, 3, 5, 9, 10]                                                                                                                                                                                                                                                                      >>> number[0:10:2]  #步长为2[2, 6, 8, 3, 9]>>> number[::3]  #从序列开始的元素算起,步长为3,提取元素[2, 7, 3, 10]>>> number[6:2:-1]  #从右到左提取元素,步长为1[3, 1, 8, 7]

3:加(通过加运算符就可以进行序列的连接操作,同类型的序列才可以进行连接操作)

>>> [1,2,1]+[1,3,5][1, 2, 1, 1, 3, 5]>>> 'zhaoliying'+'perfect!''zhaoliyingperfect!'

4:乘(*表示重复)

>>> 'zhaoliying I LOVE YOU!'*3'zhaoliying I LOVE YOU!zhaoliying I LOVE YOU!zhaoliying I LOVE YOU!'

改了一下书上的“盒子代码”,我的“盒子浪漫”代码如下,嘿嘿嘿,比心

#以正确的宽度在居中的“盒子”内打印一个句子sentence = raw_input("sentence: ")screen_width = 80text_width = len(sentence)box_width = text_width +6left_margin = (screen_width - box_width) // 2printprint ' ' * left_margin + '+'  + '-' * (box_width-2) +  '+'print ' ' * left_margin + '| ' + '-' * text_width +'-' *2  + ' |'print ' ' * left_margin + '| ' + '-' *1+sentence +'-' *1+ ' |'print ' ' * left_margin + '| ' + '-' * text_width+'-' *2    + ' |'print ' ' * left_margin + '+'  + '-' * (box_width-2) +  '+'print

结果如下:
这里写图片描述
5:成员资格(检查一个值是否在序列中,可以使用in运算符)
in检查某个条件是否为真,然后返回相应的值,条件为真返回true,否则返回false。

>>> idol = 'zhaoliying'>>> 'y'in idolTrue>>> 'm'in idolFalse
#检查用户名和PIN码idol = [ ['zhaoliying','no.1'],['jiangshuying','no.2'],['wuenda','no.3'],['huba','no.4'] ]username = raw_input('user name: ')pin = raw_input('PIN code: ')if[username,pin] in idol: print 'Access granted'

结果如下:
这里写图片描述
6:长度,最小值和最大值
内建函数len函数返回序列中所包含元素的数量,min函数和max函数分别返回序列中的最大和最小的元素。
这里写图片描述