python包涵6中内建的序列(列表,元组,字符串,Unicode字符串,buffer对象和xrange对象),本章讲常用的2中类型:列表和元组。
列表和元组的区别:列表可以修改,元组则不能。
>>> greet='hello >>> greet[0] 'h'
>>> greet='hello' >>> greet[-5] 'h'
上面2者显示的结果是一致的,因为字符串是有字符组成的序列,索引0指向第一个元素,就是hello这个单词中得第一个字母h,而python最后一个元素定义为-1,最后第二个元素定义为-2,所以h为倒数第五个字母,所以定义为-5。
months=['1m','2m','3m','4m','5m','6m','7m','8m','9m','10m','11m','12m']
endings=['st','nd','rd']+17*['th']\ +['st','nd','rd']+7*['th']\ +['st']
year=raw_input('year:') month=raw_input('month(1~12):') day=raw_input('day(1~31):')
month_number=int(month) day_number=int(day)
month_name=months[month_number-1] day_name=day+endings[day_number-1]
print month_name + '_'+day_name+'_,' +year
显示结果为:
year:2011 month(1~12):11 day(1~31):12 11m 12th ,2011
【注:python下要将月份跟日期减1,以获取正确的索引。比如说现实日期为11号,因为python从0开始,所以python下索引10为日期11号】
>>> test=[1,2,3,4,5,6,7,8,9] >>> test[3:8] [4, 5, 6, 7, 8]
【注:第一个索引3,是python序列从0开始数,数到3,也就是正常数值4,第二个索引是正常数值下的8,即一个用py数,一个用正常数】
>>> test=[1,2,3,4,5,6,7,8,9] >>> test[-4:] [6, 7, 8, 9]
【注:显示为倒数-4位置数值到末尾数值】
>>> url='www.baidu.com' >>> url[4:-4] 'baidu' 【注:或许有这样的疑问:[4:-4]第一个表示从左边数py下的第4个,也就是元素中的第5个,的确是字母“b”,但后面那个-4不是从末尾元素-1开始数起,这样数的话,-4应该是".",为啥是字母u呢? 回答:索引里第二个index是负数的话,是除去从右边数那么多个的意思,所以是-4的话,就是除去右边4个,所以是把".com"除掉了,而不是从右边数第4个。】
database=[ ['lf','123'], ['zml','911011'], ['lxm','580307'], ['zzg','541223']]
username=raw_input('put name:') code=raw_input('put code:') if [username,code] in database:print 'right'
显示结果为:
put name:lxm put code:580307 right
经测试database后面也可以用()来包含数据信息。
例:改变列表里第3个元素的数值
>>> x=[1,2,3] >>> x[2]=6 >>> x [1, 2, 6]
【注:x[2]是指py里的2,也就是实际数值里的第3位,并不是指替换x里数值为2的数,因为是用索引来标记替换的值】
8)分片赋值:
>>> name=list('perl') >>> name ['p', 'e', 'r', 'l'] >>> name[2:]=list('ace') >>> name ['p', 'e', 'a', 'c', 'e']
【注:name[2:]表示从py的2开始,包括2在内,被新list里的内容替换掉】
>>> num=[1,2,3,4,5] >>> num[1:4]=[] >>> num [1, 5]
【注:当[1:4]替换为[](空)时,就类似于删除这些元素】
>>> num=[1,2,3] >>> num.append(4) >>> num [1, 2, 3, 4]
>>> [1,2,1,[1,2],[1,[1,2]]].count(1)------>2 >>> [1,2,1,[1,2],[1,[1,2]]].count([1,2])------>1 >>> [1,2,1,[1,2],[1,[1,2]]].count([1,[1,2]])------>1
>>> word=['we','are','the','world','on','the','earth'] >>> word.index('world')------->3
>>> word=['we','are','the','world','on','the','earth'] >>> word.index('the')---------->2
>>> word=['we','are','the','world','on','the','earth'] >>> word.remove('world')---------->['we', 'are', 'on', 'the','earth']
16)py里有种常见的数据结构叫---栈,一般分别入栈和出栈,而pop和append方法操作结果恰好相反,如果入栈刚刚出栈的值,最后得到的结论还是原来的栈。