python的序列包括字符串列表和什么_Python基础:03序列:字符串、列表和元组
一:序列
1:連接操作符(+)
這個操作符允許把一個序列和另一個相同類型的序列做連接,生成新的序列。語法如下:sequence1 + sequence2
該表達式的結(jié)果是一個包含sequence1和sequence2 的內(nèi)容的新序列。
注意,這個操作不是合并操作中最快或者說最有效的。對字符串來說,這個操作不如把所有的子字符串放到一個列表或可迭代對象中,然后調(diào)用一個join方法來把所有的內(nèi)容連接在一起節(jié)約內(nèi)存;
類似地,對列表來說,推薦用列表類型的extend()方法來把兩個或者多個列表對象合并。
2:切片操作符([], [:], [::])
通過單一索引訪問序列的一個元素的時候,如果訪問一個越界的索引,會引發(fā)一個如下的異常:
>>>names = ('Faye', 'Leanna', 'Daylen')>>>print names[4]
Traceback (most recent call last): File"", line 1, in?
IndexError: tuple index out of range
切片訪問方式,只要簡單的給出開始和結(jié)束的索引值,并且用冒號分隔就可以了,其語法如下:
sequence[starting_index:ending_index]
通過這種方式可以得到從起始索引到結(jié)束索引(不包括結(jié)束索引對應(yīng)的元素)之間的一"片"元素。起始索引和結(jié)束索引都是可選的,如果沒有提供或者用None 作為索引值,切片操作會從序列的最開始處開始,或者直到序列的最末尾結(jié)束。
在切片訪問中,沒有越界一說,開始和結(jié)束素引值可以超過序列的范圍。起始索引可以小于0,而對于結(jié)束索引,也可以超出序列的長度。
切片訪問中,還可以有步長參數(shù),該參數(shù)類似于range中的步長參數(shù)。步長默認為1。
3:內(nèi)建函數(shù)
像list(), str(), tuple()這樣的工廠函數(shù),實際上是將參數(shù)內(nèi)容淺拷貝到新生成的對象中。其實在連接操作和重復操作時,也是同樣的淺拷貝。淺拷貝就是只復制了引用。
二:字符串
1:Python實際上有3類字符串:通常意義的字符串(str),Unicode字符串(unicode),還有一個抽象類basestring,str和unicode都是basestring的子類。這個basestring是不能實例化的。
2:在字符串中,成員操作符(in ,not in)用于判斷一個字符或者一個子串是否出現(xiàn)在另一個字符串中。出現(xiàn)則返回True,否則返回False。
3:連接字符串,除了使用連接操作符(+)之外,更加推薦使用字符串格式化操作符(%),或者把所有字符串放到一個列表中,然后用join方法將它們連在一起:
>>> '%s %s' % ('Spanish', 'Inquisition')'Spanish Inquisition'
>>> s = ' '.join(('Spanish', 'Inquisition', 'Made Easy'))>>>s'Spanish Inquisition Made Easy'
4:如果把一個普通字符串和一個Unicode字符串做連接處理,Python 會在連接操作前先把普通字符串轉(zhuǎn)化為Unicode 字符串:
>>> 'Hello' + u' ' + 'World' + u'!'u'Hello World!'
5:格式化操作符(%)
Python支持兩種格式的輸入?yún)?shù)。第一種是元組,這基本上是一種C的printf()風格的轉(zhuǎn)換參數(shù)集;
Python支持的第二種形式是字典形式,這種形式里面,key 是作為格式字符串出現(xiàn),相對應(yīng)的value 值作為參數(shù)在進行轉(zhuǎn)化時提供給格式字符串。例子如下:
>>> adict = {'lang': 'Python', 'howmany':3}>>> 'There are %(howmany)d %(lang)s QuotationSymbols' %adict'There are 3 Python Quotation Symbols'
格式字符串既可以跟print語句一起用來向終端用戶輸出數(shù)據(jù),又可以用來合并字符串形成新字符串。
6:原始字符串
原始字符串是為了對付那些在字符串中出現(xiàn)的特殊字符。在原始字符串里,所有的字符都是直接按照字面的意思來使用,沒有轉(zhuǎn)義特殊或不能打印的字符。原始字符串的這個特性讓一些工作變得非常的方便,比如正則表達式的創(chuàng)建。
除了原始字符串符號(引號前面的字母"r")以外,原始字符串跟普通字符串有著幾乎完全相同的語法。這個'r'可以是小寫也可以是大寫,唯一的要求是必須緊靠在第一個引號前。
比如需要一個反斜杠加一個'n',而不是一個換行符:
>>> '\n'
'\n'
>>> astr = '\n'
>>> printastr>>> bstr = r'\n'
>>> printbstr
\n>>> r'\n'
'\\n'
7:chr()、unichr()和ord()
chr()函數(shù)用一個范圍在range(256)內(nèi)的(就是0到255)整數(shù)做參數(shù),返回一個對應(yīng)的字符.unichr()跟它一樣,只不過返回的是Unicode字符。
ord()函數(shù)是chr()函數(shù)(對于8 位的ASCII 字符串)或unichr()函數(shù)(對于Unicode對象)的配對函數(shù),它以一個字符(長度為1的字符串)作為參數(shù),返回對應(yīng)的ASCII數(shù)值,或者Unicode數(shù)值,如果所給的Unicode 字符超出了你的Python 定義范圍,則會引發(fā)一個TypeError 的異常。
>>> chr(65)'A'
>>> ord('a')97
>>> unichr(12345)
u'\u3039'
8:字符串內(nèi)建方法join
str.join(iterable)
以str為分隔符,將seq中所有字符串合并為一個新的字符串,并返回新的字符串。比如:
>>> ''.join(('hello', 'world', 'hehe'))'helloworldhehe'
>>> ' '.join(('hello', 'world', 'hehe'))'hello world hehe'
>>> '-'.join(('hello', 'world', 'hehe'))'hello-world-hehe'
三:列表
1:列表的比較
如果比較的是兩個同類的對象,比較操作是非常直觀的。比如數(shù)字和字符串,直接比較它們的值就行了。對于序列類型,比較操作稍微有點復雜了。
列表的比較,如果它的元素都是相同類型,則用標準的比較方法來作比較.否則,當我們比較list1和list2時,list1和list2進行逐項比較。如果比較的值相等,那么兩個序列的下一個值繼續(xù)比較,直到不相等的情況出現(xiàn),或者到達較短的一個序列的末尾,在這種情況下,長的序列被認為是"較大"的。
a:對兩個列表的元素進行比較.
b:如果比較的元素是同類型的,則比較其值,返回結(jié)果.
c:如果兩個元素不是同一種類型,則檢查它們是否是數(shù)字:
如果都是數(shù)字,執(zhí)行必要的數(shù)字強制類型轉(zhuǎn)換,然后比較。
如果有一方的元素是數(shù)字,則另一方的元素"大"(數(shù)字是"最小的")
否則,通過類型名字的字母順序進行比較.
d:如果有一個列表首先到達末尾,則另一個長一點的列表"大".
e:如果比較完了兩個列表的元素而且所有元素都是相等的,那么結(jié)果就是個平局,就是說返回一個0。
四:元組
1:雖然元組本身不可變,但是元組可以包含可變的對象。
總結(jié)
以上是生活随笔為你收集整理的python的序列包括字符串列表和什么_Python基础:03序列:字符串、列表和元组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 原理图中如何连线_Altium Desi
- 下一篇: 输出整形变量语句_Python合集之Py