python序列符号_初识Python(4)__Python序列
序列
序列包含:字符串,列表和元組
序列基本操作符
索引:seq[ind] 獲得下標(biāo)為ind 的元素
分片( [], [:], [::] ):seq[ind1:ind2] 獲得下標(biāo)從ind1 到ind2 間的元素集合
重復(fù)操作符( * ):seq * expr 序列重復(fù)expr 次
連接操作符( + ):sequence1 + sequence2,該表達(dá)式的結(jié)果是一個(gè)包含sequence1 和sequence2 的內(nèi)容的新序列
判斷成員資格:obj in/not in seq 判斷obj 元素是否包含在seq 中,返回True或False
求長(zhǎng)度:len()
最大值最小值:max() min()
關(guān)于索引:
sequence[index]
sequence 是序列的名字,index 是想要訪問的元素對(duì)應(yīng)的偏移量.偏移量可以是正值,范圍從0 到偏移最大值(比序列長(zhǎng)度少一),用len()函數(shù)(下一節(jié)會(huì)講),可以得到序列長(zhǎng)度,實(shí)際的范圍是 0 <= inde <= len(sequece)-1 .另外,也可以使用負(fù)索引,范圍是 -1 到序列的負(fù)長(zhǎng)度,-len(sequence), -len(sequence) <= index <= -1.正負(fù)索引的區(qū)別在于正索引以序列的開始為起點(diǎn),負(fù)索引以序列的結(jié)束為起點(diǎn).
關(guān)于切片:
sequence[starting_index:ending_index]
通過這種方式我們可以得到從起始索引到結(jié)束索引(不包括結(jié)束索引對(duì)應(yīng)的元素)之間的一"片"元素.起始索引和結(jié)束索引都是可選的,如果沒有提供或者用None 作為索引值,切片操作會(huì)從序列的最開始處開始,或者直到序列的最末尾結(jié)束.用步長(zhǎng)索引來(lái)進(jìn)行擴(kuò)展的切片操作序列的最后一個(gè)切片操作是擴(kuò)展切片操作,它多出來(lái)的第三個(gè)索引值被用做步長(zhǎng)參數(shù)。s[::-1] # 可以視作"翻轉(zhuǎn)"操作
序列類型轉(zhuǎn)換工廠函數(shù)
list(iter):把可迭代對(duì)象轉(zhuǎn)換為列表
str(obj): 把obj 對(duì)象轉(zhuǎn)換成字符串(對(duì)象的字符串表示法)
unicode(obj): 把對(duì)象轉(zhuǎn)換成Unicode 字符串(使用默認(rèn)編碼)
basestring(): 抽象工廠函數(shù),其作用僅僅是為str 和unicode 函數(shù)提供父類,所以不能被實(shí)例化,也不能被調(diào)用tuple(iter): 把一個(gè)可迭代對(duì)象轉(zhuǎn)換成一個(gè)元組對(duì)象
字符串
特性:通過加引號(hào)(單引號(hào),雙引號(hào),三引號(hào))創(chuàng)建,不可變類型
格式
描述
%%
輸出百分號(hào)標(biāo)記
%c
字符及其ASCII碼
%r
優(yōu)先用repr()函數(shù)進(jìn)行字符串轉(zhuǎn)換
%s
優(yōu)先用str()函數(shù)進(jìn)行字符串轉(zhuǎn)換
%d
有符號(hào)整數(shù)(十進(jìn)制)
%u
無(wú)符號(hào)整數(shù)(十進(jìn)制)
%o
無(wú)符號(hào)整數(shù)(八進(jìn)制)
%x
無(wú)符號(hào)整數(shù)(十六進(jìn)制)
%X
無(wú)符號(hào)整數(shù)(十六進(jìn)制大寫字符)
%e
浮點(diǎn)數(shù)字(科學(xué)計(jì)數(shù)法)
%E
浮點(diǎn)數(shù)字(科學(xué)計(jì)數(shù)法,用E代替e)
%f
浮點(diǎn)數(shù)字(用小數(shù)點(diǎn)符號(hào))
%g
浮點(diǎn)數(shù)字(根據(jù)值的大小采用%e或%f)
%G
浮點(diǎn)數(shù)字(類似于%g)
%p
指針(用十六進(jìn)制打印值的內(nèi)存地址)
%n
存儲(chǔ)輸出字符的數(shù)量放進(jìn)參數(shù)列表的下一個(gè)變量中
輔助符號(hào)
說(shuō)明
*
定義寬度或者小數(shù)點(diǎn)精度
-
用做左對(duì)齊
+
在正數(shù)前面顯示加號(hào)(+)
在正數(shù)前面顯示空格
#
在八進(jìn)制數(shù)前面顯示零(0),在十六進(jìn)制前面顯示“0x”或者“0X”(取決于用的是“x”還是“X”)
0
顯示的數(shù)字前面填充“0”而不是默認(rèn)的空格
m.n
m 是顯示的最小總寬度,n 是小數(shù)點(diǎn)后的位數(shù)(如果可用的話)
注意:輔助符號(hào)要在百分號(hào)(%)和格式化符號(hào)之間。
輔助符號(hào)舉例:
Num1 = 108
print("%#X" %Num1)
Num2= 234.567890
print("%.2f" %Num2)
輸出:0X6C
234.57
原始字符串操作符( r/R )
Python中的原始字符串以r開頭,使用原始字符串可以避免字符串中轉(zhuǎn)義字符帶來(lái)的問題。
例如寫路徑時(shí) path = 'c:\noway',此時(shí)用 printpath,其結(jié)果為:
c:
oway
如果用原始字符串 path= r'c:\noway',則 printpath,其結(jié)果為:
c:\noway
列表
l? 列表是序列對(duì)象,可包含任意的Python數(shù)據(jù)信息,如字符串、數(shù)字、列表、元組等
l? 列表的數(shù)據(jù)是可變的,我們可通過對(duì)象方法對(duì)列表中的數(shù)據(jù)進(jìn)行增加、修改、刪除等操作
l? 可以通過list(seq)函數(shù)把一個(gè)序列類型轉(zhuǎn)換成一個(gè)列表
列表是由方括號(hào)[ ]來(lái)定義的,當(dāng)然,你也可以用工廠方法list()來(lái)創(chuàng)建。
>>> aList = [123, 'abc', 4.56, ['inner', 'list'], 7-9j]>>> list('foo')
['f', 'o', 'o']
列表方法:
1.list.append(x),在list列表尾部追加單個(gè)對(duì)象x,使用多個(gè)參數(shù)會(huì)引起異常
2. list.count(x),返回對(duì)象x在list列表中出現(xiàn)的次數(shù)
3. list.extend(L),將L列表中的內(nèi)容添加到list列表中,返回None
4. list.index(obj,i=0,j=len(list)):返回list[k]==obj的k值,并且k的范圍在 i<=k
5. list.insert(i,x),在索引為i的元素前插入對(duì)象x,如list.insert(0,x)在第一項(xiàng)前插入對(duì)象,返回None
6. list.pop(x),刪除列表中索引為x的表項(xiàng),并返回該表項(xiàng)的值,若未指定索引,pop返回列表最后一項(xiàng)
7. list.remove(x),刪除列表中匹配對(duì)象x的第一個(gè)元素,匹配元素時(shí)產(chǎn)生異常,返回None
8. list.reverse(),顛倒列表元素的順序
9. list. sort([cmp[, key[, reverse]]]),對(duì)列表排序,返回none,bisect模塊可用于排序列表項(xiàng)的添加和刪除
序列類型函數(shù)
Len():對(duì)字符串來(lái)說(shuō)len()返回字符串的長(zhǎng)度,就是字符串包含的字符個(gè)數(shù).對(duì)列表或者元組來(lái)說(shuō),它會(huì)像你想像的那樣返回列表或者元組的元素個(gè)數(shù),容器里面的每個(gè)對(duì)象被作為一個(gè)項(xiàng)來(lái)處理.
Max()and min()
Sorted() and reversed():排序
Enumerate() and zip():
Sum():求和
List() and tuple():list()函數(shù)和tuple()函數(shù)接受可迭代對(duì)象(比如另一個(gè)序列)作為參數(shù),并通過淺拷貝數(shù)據(jù)來(lái)創(chuàng)建一個(gè)新的列表或者元組它們用于在兩種類型之間進(jìn)行轉(zhuǎn)換,比如你需要把一個(gè)已有的元組轉(zhuǎn)成列表類型的(然后你就可以修改它的元素了),或者相反.
元組
1、相當(dāng)于不可變的列表,不能進(jìn)行更新內(nèi)容和順序
2、當(dāng)處理一組對(duì)象時(shí),這個(gè)組默認(rèn)是元組類型
3、所有的多對(duì)象,逗號(hào)分隔的,沒有明確用符號(hào)定義的這些都默認(rèn)為元組類型
創(chuàng)建元組:
>>>atuple = (‘1’,’b’,’a’)>>> tuple('bar')
('b', 'a', 'r')>>>atuple = (‘1’,) #創(chuàng)建單個(gè)元素的元組,要加個(gè)“,”號(hào)
關(guān)于元組操作:
1.?? 無(wú)法向元組添加元素。元組沒有? append() 或 extend() 方法。
2.?? 不能從元組中刪除元素。元組沒有 remove() 或 pop()? 方法。
3.?? 可以 在元組中查找元素,由于該操作不改變?cè)M。
4.?? 還可以使用 in 運(yùn)算符檢查某元素是否存在于元組中。
更新元組
跟數(shù)字和字符串一樣,元組也是不可變類型,就是說(shuō)你不能更新或者改變?cè)M的元素,前面,我們是通過現(xiàn)有字符串的片段再構(gòu)造一個(gè)新字符串的方式解決的,對(duì)元組同樣需要這樣。
aTuple = (123, 'abc', 4.56, ['inner', 'tuple'], 7-9j)
aTuple= aTuple[0], aTuple[1], aTuple[-1]print(aTuple)
輸出:
(123, 'abc', (7-9j))
tup1= (12, 34.56)
tup2= ('abc', 'xyz')
tup3= tup1 +tup2print(tup3)
輸出:
(12, 34.56, 'abc', 'xyz')
那么元組有什么好處呢?
??? 元組的速度比列表更快。如果定義了一系列常量值,而所需做的僅是對(duì)它進(jìn)行遍歷,那么請(qǐng)使用元組替代列表。
??? 對(duì)不需要改變的數(shù)據(jù)進(jìn)行“ 寫保護(hù)” 將使得代碼更加安全。使用元組替代列表就像是有一條隱含的 assert 語(yǔ)句顯示該數(shù)據(jù)是常量,特別的想法(及特別的功能)必須重寫。(??)
??? 一些元組可用作字典鍵(特別是包含字符串、數(shù)值和其它元組這樣的不可變數(shù)據(jù)的元組)。列表永遠(yuǎn)不能當(dāng)做字典鍵使用,因?yàn)榱斜聿皇遣豢勺兊摹?/p>
??? 元組作為很多內(nèi)建函數(shù)和方法的返回值存在。
關(guān)于列表和列表,元組和元組之間的比較:
1. 對(duì)兩個(gè)列表的元素進(jìn)行比較.
2. 如果比較的元素是同類型的,則比較其值,返回結(jié)果.
3. 如果兩個(gè)元素不是同一種類型,則檢查它們是否是數(shù)字.
a. 如果是數(shù)字,執(zhí)行必要的數(shù)字強(qiáng)制類型轉(zhuǎn)換,然后比較.
b. 如果有一方的元素是數(shù)字,則另一方的元素"大"(數(shù)字是"最小的")
c. 否則,通過類型名字的字母順序進(jìn)行比較.
4. 如果有一個(gè)列表首先到達(dá)末尾,則另一個(gè)長(zhǎng)一點(diǎn)的列表"大".
5. 如果我們用盡了兩個(gè)列表的元素而且所有元素都是相等的,那么結(jié)果就是個(gè)平局,就是說(shuō)返回一個(gè)0.
總結(jié)
以上是生活随笔為你收集整理的python序列符号_初识Python(4)__Python序列的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nsga2算法_用遗传算法进行容量管理
- 下一篇: python中response.text