Python之序列詳解

序列數據結構

一種數據結構,成員有序排列,可經過下標偏移量訪問它的一或多個成員。ide

序列類型函數

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

序列類型操做符code

成員關係操做符(in,not in)對象

做用:判斷一個元素是否屬於一個序列        語法格式:對象 [not] in 序列索引

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


鏈接操做符(+)ip

做用:把一個序列和另外一個序列鏈接起來     語法格式:sequence1 + sequence2內存

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

把全部的子字符串放到一個列表或可迭代對象中,調用join方法把全部內容鏈接在一塊兒節約內存unicode

>>> ''.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...) 返回一個列表,列表的每個元素是參數列表的值組合
相關文章
相關標籤/搜索