1. 程式人生 > >Python之序列詳解

Python之序列詳解

序列

一種資料結構,成員有序排列,可通過下標偏移量訪問它的一或多個成員。

序列型別

字串(普通字串和unicode字串)、列表和元組

序列型別操作符

成員關係操作符(in,not in)

作用:判斷一個元素是否屬於一個序列        語法格式:物件 [not] in 序列

>>> 'a' in 'ability'
True
>>> 'jon' not in ['job','Tom','Tony']
True


連線操作符(+)

作用:把一個序列和另一個序列連線起來     語法格式:sequence1 + sequence2

>>> 'sequence' + 'copy'
'sequencecopy'

把所有的子字串放到一個列表或可迭代物件中,呼叫join方法把所有內容連線在一起節約記憶體

>>> ''.join(['sequence','copy'])
'sequencecopy'

合併兩個或者多個列表,不依賴於方法的返回值

>>> s = [1,2,3]
>>> x = [4,5,6]
>>> s.extend(x)
>>> s
[1, 2, 3, 4, 5, 6


重複操作符(*)

作用:獲取一個序列的多份拷貝,該操作符返回一個新的包含多份原拷貝的物件      語法格式:sequence * copies-int

>>> 'give me! '* 2
'give me! give me!


切片操作符([],[:],[::])

作用:通過指定下標的方式獲得某一資料元素,或通過指定下標範圍獲得一組序列的元素。     語法格式:seq[index], seq[start:end], seq[start:end:step]

索引值:0 <= index <=len(seq)-1 和 -len(seq) <= index <=-1

>>> names = ('Faye','Leana','Daylen')
>>> names[1]
'Leana'
>>> ('Faye','Leana','Daylen')[1]
'Leana

seq[start:end]不包括結束索引值,如果沒有提供索引值或者用None作為索引值,切片操作會從序列的最開始處開始,或者直到序列的最末尾結束

>>> names[0:2]
('Faye', 'Leana')

實現字串翻轉

>>> s = 'abcdefg'
>>> s[::-1]
'gfedcba'


小試牛刀:有一個字串,通過一個迴圈按照這樣的方式顯示它:每次都把位於最後一個字元砍掉

>>> s = 'abcde'
>>> for i in [None] + range(-1,-len(s),-1):
        print s[:i]
abcde
abcd
abc
ab
a


內建函式(BIF)

型別轉換

函式 含義
list(iter) 把可迭代物件轉換為列表
str(obj) 把obj轉換成字串
unicode(obj) 把obj轉換成unicode字串
basestring() 為str和unicode函式提供父類
tuple(iter) 把一個可迭代物件轉換成一個元組物件

    

可操作

函式名 功能
enumerate(iter) 該物件生成iter每個元素的index值和item值組成的元組
len(seq) seq的長度
max(arg0,arg1...) 最大值
min(arg0,arg1...) 最小值
reversed(seq) 返回一個逆序訪問的迭代器
sorted(iter) 返回一個有序列表
sum(seq) seq的和
zip(it0,it1...) 返回一個列表,列表的每一個元素是引數列表的值組合