python string.zfill() 方法/函式:墊零左側的字串,以填補寬度。
python 序列操作
seq[ind] 獲得下標為 ind 的元素
seq[ind1:ind2] 獲得下標從 ind1 到 ind2 間的元素集合
seq * expr 序列重複 expr 次
seq1 + seq2 連線序列 seq1 和 seq2
obj in seq 判斷 obj 元素是否包含在 seq 中
obj not in seq 判斷 obj 元素是否不包含在 seq 中
1.連線操作符( + )
這個操作符允許我們把乙個序列和另乙個相同型別的序列做連線。語法如下:
sequence1 + sequence2
*對字串來說,這個操作不如把所有的子字串放到乙個列表或可迭代物件中,然後呼叫乙個 join方法來把所有的內容連線在一起節約記憶體;類似地,對列表來說,我們推薦讀者用列表型別的extend()方法來把兩個或者多個列表物件合併
2.切片操作符 ( , [:], [::] )
sequence[index]
可以使用負索引,範圍是 -1 到序列的負長度,-len(sequence), -len(sequence) <= index <= -1.正負索引的區別在於正索引以序列的開始為起點,負索引以序列的結束為起點.
因為 python 是物件導向的,所以你可以像下面這樣直接訪問乙個序列的元素(不用先把它
賦值給乙個變數):
>>> print ('faye', 'leanna', 'daylen')[1]
leanna
sequence[starting_index:ending_index]
*sequence[0:3]==sequence[:3] (一端可省略)
sequence[starting_index:ending_index:step]
以下是幾個例子:
>>> s = 'abcdefgh'
>>> s[::-1] # 可以視作"翻轉"操作
'hgfedcba'
>>> s[::2] # 隔乙個取乙個的操作
'aceg'
*切片索引的語法要比簡單的單一元素索引靈活的多。開始和結束素引值可以超過字串的長度。
>>> ('faye', 'leanna', 'daylen')[-100:100]
('faye', 'leanna', 'daylen')
>>> for i in [none] + range(-1, -len(s), -1):
... print "s[:%s]" % (i)
... print s[:i]
...
s[:none]
abcdef
s[:-1]
abcde
s[:-2]
abcd
s[:-3]
abcs[:-4]
abs[:-5]
a**用 none 作為索引值,這樣一來就可以滿足你的需要,比如說,在你想用乙個變數作為索引來從第乙個到遍歷最後乙個元素的時候:
字串*python 裡面單引號和雙引號的作用是相同的
>>> astring = 'hello world!' # 使用單引號
>>> anotherstring = "python is cool!" # 使用雙引號
>>> print astring # print 不帶引號的 hello world!
>>> anotherstring # 不是進行 print 操作,帶有引號
'python is cool!'
>>> s = str(range(4)) # 把乙個列表轉換成乙個字串
>>> s
'[0, 1, 2, 3]'
常用的內建函式:cmp(),len(), max(), min()
raw_input()
sort()和reverse():正排序和倒排序
>>> music_media
['compact disc', 45, '8-track tape', 'long playing record']
>>> music_media.sort()
>>> music_media
[45, '8-track tape', 'compact disc', 'long playing record']
>>> music_media.reverse()
>>> music_media
['long playing record', 'compact disc', '8-track tape', 45]
**在使用可變物件的方法如 sort(),extend()和 reverse()的時候要注意,這些操作會在列表中原地執行操作,也就是說現有的列表內容會被改變,但是沒有返回值!
字串方法有返回值
>>> 'leanna, silly girl!'.upper()
'leanna, silly girl!'
**不可變物件的方法是不能改變它們的值的,所以它們必須返回乙個新的物件.
***元組和列表相比有乙個很重要的區別,元組是一種不可變型別
> atuple = (123, 'abc', 4.56, ['inner', 'tuple'], 7-9j)
>>> anothertuple = (none, 'something to see here')
>>> print atuple
(123, 'abc', 4.56, ['inner', 'tuple'], (7-9j))
>>> print anothertuple
(none, 'something to see here')
>>> emptiestpossibletuple = (none,)
>>> print emptiestpossibletuple
(none,)
>>> tuple('bar')
('b', 'a', 'r')
訪問元組中的值,切片, [:], [::]
跟數字和字串一樣,元組也是不可變型別,就是說你不能更新或者改變元組的元素
通過現有字串的片段再構造乙個新字串的方式解決的,對元組同樣。
刪除乙個單獨的元組元素是不可能的,可以通過切片,拼接後賦給乙個新的元組。
元組可以在兩端加入元素:
>>> c = tuple('d') + a
>>> c
('d', 'd', 'u', 'c', 'h')
>>>
>>> t = t + ('fifth', 'sixth')
>>> t
('third', 'fourth', 'fifth', 'sixth')
在中間加:
>>> a[:1] + ('hello',) + a[1:]
('d', 'hello', 'u', 'c', 'h')
>>>
核心筆記:列表 vs 元組
乙個經常會被問到的問題是,"為什麼我們要區分元組和列表變數?"這個問題也可以被表述為「我們真的需要兩個相似的序列型別嗎?」,乙個原因是在有些情況下,使用其中的一種型別要優於使用另一種型別。
最好使用不可變型別變數的乙個情況是,如果你在維護一些敏感的資料,並且需要把這些資料傳遞給乙個並不了解的函式(或許是乙個根本不是你寫的 api),作為乙個只負責乙個軟體某一部分的工程師,如果你確信你的資料不會被呼叫的函式篡改,你會覺得安全了許多。 乙個需要可變型別引數的例子是,如果你在管理動態資料集合時。你需要先把它們建立出來,逐漸地或者不定期的新增它們,或者有時還要移除一些單個的元素。這是乙個必須使用可變型別物件的典型例子。幸運的是,通過內建的 list()和 tuple()轉換函式,你可以非常輕鬆的在兩者之間進行轉換.
Python學習筆記 元組 字串 序列
一 元組 1 建立 如圖,除了temp4是int型,其餘的都成功建立了元組,其中te 是建立空元組的方法,若想建立只有乙個元素的元組可以用temp6的方法。2 元組tuple和列表list很相似,索引 切片和操作符的使用都基本相同,但增刪操作不同。因為tuple不支援修改 是不可變型別,若想修改,只...
字串,元組,列表
共異點 字串列表 元組拼接 a 1 b 2 a b a 1 b 2 a b a 1 b 2 a b 重複a 1 a 3 a 1 3 元組不可以重複 索引sr 123 sr 1 li 1 2 li 0 tp 1 2 tp 0 切片sr 123 sr 0 2 li 1 2 li 0 1 tp 1 2 t...
列表 元組 字串
容器資料型別 列表元組 字串1 列表 列表是有序集合,沒有固定大小,能夠儲存任意數量任意型別的 python 物件,語法為 元素1,元素2,元素n 關鍵點是 中括號 和 逗號 中括號 把所有元素綁在一起 逗號 將每個元素一一分開 2 元組 元組 定義語法為 元素1,元素2,元素n 小括號把所有元素綁...