(1)序列(数据结构的一种)的操作
1.索引(排序的编号)
2.分片
3.序列相加
4.乘法
5.包含
6.获取长度、最小值、最大值
————————————————————————
数据结构:通过某种方式组织在一起的数据元素的集合
内建序列:列表和元组,字符串,Unicode字符串,Buffer对象,xrange对象
————————————————————————
1.索引(排序的编号):
列表索引:
用[]扣起来表示列表,只要把逗号分隔的不同的数据项使用方括号括起来即可, edwrad=[‘Edrard Gundy‘,42]这是一个序列(是一个列表序列,包含两个元素,字符串元素和整形元素),
>>>john=[‘John Smith‘,50],database=[edwrad,john] #可以列表中放列表
[[‘Edrard Gundy‘, 42], [‘John Smith‘, 50]]
>>>database[0] #(从databse列表中取第一个元素)
[‘Edrard Gundy‘, 42]
字符串索引:
greeting=‘Hello‘(第一个脚标为0对应H,第二个脚标为1对应 e,第三个脚标为2对应L,第四个脚标为3对应L,第五个脚标为4对应o。
倒数第一个的脚标为-1,倒数的二个的脚标为-2,倒数第三个的脚标为-3.。。。。),
>>>greeting=‘Hello‘
>>>greeting[0] #当取第一个的时候
‘H‘
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
索引的引用:
months=[‘January‘,‘February‘,‘March‘,‘April‘,‘May‘,‘July‘,‘August‘,‘September‘,‘October‘,‘November‘,‘December‘]
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]
ordinal=day+endings[day_number-1]
print month_name+‘ ‘+ordinal+‘, ‘+year
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2.分片(提取序列中的一部分数据):
提取字符串:
我们要提取tag=‘<a href="http://www.python.org">Python Web site</a>‘里面的http://www.python.org字符串时,
可通过分片提取:tag[9:30] 是指从脚标9(包含9)开始取,到脚标30(不包含30)结束。打印为:‘http://www.python.org‘
tag[32:-4] -4是倒着数的也就是顺数脚标为46,打印:‘Python Web site‘
提取列表:
提取列表
>>>number=[1,2,3,4,5,6,7,8,9,10] #中的4,5,6 通过分片提取:
>>>number[3:6]
[4, 5, 6]
我们可以通过
>>>number[-3:] #取到最后一位:
[8,9,10]
还可以通过
>>>number[:3 ] #取到脚标为3的前几位元素
[1,2,3]
>>>number[:] #可以取到全部元素
[1,2,3,4,5,6,7,8,9,10]
>>>number[0:10:2] #或number[0::2] 步长为二(脚标公差为二)
>>>[1, 3, 5, 7, 9]
>>>number[1:10:2] #或number[1::2] 步长为二(脚标公差为二)
>>>[2, 4, 6, 8, 10]
注意unmber[:::]为顺数,如果脚标不和理就打印“[]”空,而unmber[::—]倒数,比如:
>>>number[9:2:2]
[]
>>>number[10:2:-2]
[10, 8, 6, 4]
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3.序列相加(两个序列和起来):
>>>[1,2,3]+[4,5,6]
[1,2,3,4,5,6]
>>>‘Hello,’+‘World‘
‘Hello,World‘
注:序列相加必须类型相同,比如列表只能和列表相加,字符串和字符串相加。不能字符串和列表相加!
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
4.乘法(序列重复):
>>>‘python’*5 # 表示字符串重复5次
‘pythonpythonpythonpythonpython‘
>>>[42]*5 #表示列表重复5次
[42, 42, 42, 42, 42]
>>>[]*5
[] #五个都是空就打印一个空
>>>[None]*5
[None, None, None, None, None] #有五个元素个空值,把五个都打印
做一个打印文本框的小程序:
sentence=raw_input("Sentence:") # 定义一个变量sentence接收输入的文本
screen_width=80 #屏幕的宽度为80个字符
text_width=len(sentence) #获取文本长度len(sentence)
box_width=text_width+8 #盒子(外框)的长度
left_margin=(screen_width-box_width)//2 #左空白的宽度
print
print ‘ ‘*left_margin+"+"+‘-‘*box_width+‘+‘
print ‘ ‘*left_margin+"| "+‘ ‘ *text_width+ ‘ |‘
print ‘ ‘*left_margin+"| "+ sentence +‘ |‘
print ‘ ‘*left_margin+"| "+‘ ‘ *text_width +‘ |‘
print ‘ ‘*left_margin+"+"+‘-‘*box_width +‘+‘
print
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5.包含:
我们定义一个变量permissions=‘rw‘ 接收字符串, 我们要可以用in关键字提取字符串元素。 ‘w‘ in permissions ==> True
如果找到元素就还回true,否则还回False。
我们定义一个变量
>>>users=[‘mlh‘,‘foo‘,‘bar‘]
>>>‘mlh‘ in users
True
我们做一个查找小程序:
database=[[‘longwei‘,‘125135‘],[‘wuxijv‘,‘123456‘],[‘dx‘,‘000000‘],[‘ko‘,‘125135‘]]
username=raw_input("User name:")
pin=raw_input("Pin code:")
if [username,pin] in database:print ‘Access granted‘
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6.获取长度、最小值、最大值:
>>>numbers=[245,763,7543,245] #定义一个列表变量
>>>len(numbers) #用len()函数获取列表长度,
4
>>>min(numbers) #用min()函数获取元素最小值,
245
>>>max(numbers) #用max(0函数获取元素最大值,
7543