首页 > 代码库 > Python序列

Python序列

(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

 

Python序列