Python之序列詳解
阿新 • • 發佈:2018-11-11
序列
一種資料結構,成員有序排列,可通過下標偏移量訪問它的一或多個成員。
序列型別
字串(普通字串和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...) | 返回一個列表,列表的每一個元素是引數列表的值組合 |