久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Python學(xué)習(xí)手冊(cè)(第4版).4

 云深無際 2021-11-03

要表示字符串 Bob said "I'm OK".

由于 ' 和 " 會(huì)引起歧義,因此,,我們?cè)谒懊娌迦胍粋€(gè)\表示這是一個(gè)普通字符,,不代表字符串的起始,因此,,這個(gè)字符串又可以表示為

'Bob said \"I\'m OK\".'

注意:轉(zhuǎn)義字符 \ 不計(jì)入字符串的內(nèi)容中,。

常用的轉(zhuǎn)義字符還有:

\n 表示換行

\t 表示一個(gè)制表符

\\ 表示 \ 字符本身

三個(gè)引號(hào)或淡引號(hào)

Python也支持原始(raw)字符串常量,即去掉反斜線轉(zhuǎn)義機(jī)制(這樣的字符串常量是以字母“r”開頭的),。

模式匹配

在繼續(xù)學(xué)習(xí)之前,,值得關(guān)注的一點(diǎn)就是字符串對(duì)象的方法能夠支持基于模式的文本處理。文本的模式匹配是本書范圍之外的一個(gè)高級(jí)工具,,但是有其他腳本語(yǔ)言背景的讀者也許對(duì)在Python中進(jìn)行模式匹配很感興趣,,我們需要導(dǎo)入一個(gè)名為re的模塊。這個(gè)模塊包含了類似搜索,、分割和替換等調(diào)用,,但是因?yàn)槭褂媚J饺ザx子字符串,可以更通用一些:

>>> import re

>>> match = re.match('Hello[ \t]*(.*)world','Hello Python world')

>>> match.group(1)

'Python '

這個(gè)例子的目的是搜索子字符串,,這個(gè)子字符串以“Hello,”開始,,后面跟著零個(gè)或幾個(gè)制表符或空格,接著有任意字符并將其保存至匹配的group中,,最后以“world.”結(jié)尾,。如果找到了這樣的子字符串,與模式中括號(hào)包含的部分匹配的子字符串的對(duì)應(yīng)部分保存為組,。

通過help可知:編譯一個(gè)正則表達(dá)式模式,,返回一個(gè)模式對(duì)象。

第二個(gè)參數(shù)flags是匹配模式,,可以使用按位或’|’表示同時(shí)生效,,也可以在正則表達(dá)式字符串中指定。

Pattern對(duì)象是不能直接實(shí)例化的,,只能通過compile方法得到,。

列表是一個(gè)任意類型的對(duì)象的位置相關(guān)的有序集合,它沒有固定的大小,。

Python的列表與其他語(yǔ)言中的數(shù)組有些類似,,但是列表要強(qiáng)大得多,。其中一個(gè)方面就是,列表沒有固定類型的約束,。例如,,上個(gè)例子中接觸到的列表,包含了三個(gè)完全不同類型的對(duì)象(一個(gè)整數(shù),、一個(gè)字符串,,以及一個(gè)浮點(diǎn)數(shù))。此外,,列表沒有固定大小,,也就是說能夠按照需要增加或減小列表大小,來響應(yīng)其特定的操作:

操做

python的pop方法是按照下標(biāo)索引來刪除列表中的元素 而remove是按照列表中的值來刪除元素~

1.先創(chuàng)建一個(gè)列表a,,然后dir(a),,就能夠得到內(nèi)置的所有列表可以進(jìn)行的操作:'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'

想要了解每個(gè)函數(shù)的用法,就help(a.函數(shù)),,下面的數(shù)據(jù)類型同

2.先創(chuàng)建一個(gè)字符串b,,然后dir(b),就能夠得到內(nèi)置的所有字符串可以進(jìn)行的操作:'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit',

'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'

3.先創(chuàng)建一個(gè)字典c,,然后dir(c),,就能夠得到內(nèi)置的所有字典可以進(jìn)行的操作:'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values'

操作


Python核心數(shù)據(jù)類型的一個(gè)優(yōu)秀的特性就是它們支持任意的嵌套。

能夠以任意的組合對(duì)其進(jìn)行嵌套,,并可以多個(gè)層次進(jìn)行嵌套(例如,,能夠讓一個(gè)列表包含一個(gè)字典,并在這個(gè)字典中包含另一個(gè)列表等),。

這種特性的一個(gè)直接的應(yīng)用就是實(shí)現(xiàn)矩陣,,或者Python中的“多維數(shù)組”。

一個(gè)嵌套列表的列表能夠完成這個(gè)基本的操作:

可以展開循環(huán)列表


列表解析

處理序列的操作和列表的方法中,,Python還包括了一個(gè)更高級(jí)的操作,,稱作列表解析表達(dá)式(list comprehension expression),從而提供了一種處理像矩陣這樣結(jié)構(gòu)的強(qiáng)大工具,。例如,,假設(shè)我們需要從列舉的矩陣中提取出第二列。因?yàn)榫仃囀前凑招羞M(jìn)行存儲(chǔ)的,,所以通過簡(jiǎn)單的索引即可獲取行,,使用列表解析可以同樣簡(jiǎn)單地獲得列。

>>> col2 = [row[1] for row in M]         # Collect the items in column 2

>>> col2

[2,5,8]

>>> M                                    # The matrix is unchanged

[[1,2,3],[4,5,6],[7,8,9]]


列表解析源自集合的概念,。

它是一種通過對(duì)序列中的每一項(xiàng)運(yùn)行一個(gè)表達(dá)式來創(chuàng)建一個(gè)新列表的方法,,每次一個(gè),從左至右。

列表解析是編寫在方括號(hào)中的(提醒你在創(chuàng)建列表這個(gè)事實(shí)),,并且由使用了同一個(gè)變量名的(這里是row)表達(dá)式和循環(huán)結(jié)構(gòu)組成

,。


已經(jīng)顯露出Python許多特性了,,可變對(duì)象與不可變對(duì)象,,通用序列操作與類型特定方法,分片(slice),,嵌套,,列表解析表達(dá)式(list comprehension expression)。

由左至右:中括號(hào),,循環(huán)結(jié)構(gòu)中的元素構(gòu)成的表達(dá)式,,循環(huán)結(jié)構(gòu),循環(huán)結(jié)構(gòu)中的元素構(gòu)成的條件語(yǔ)句,。

更完整的形式:

新列表 = [表達(dá)式 for 每個(gè)元素 in 可迭代集合 if 條件]


之前的這個(gè)列表解析表達(dá)基本上就是它字面上所講的:“把矩陣M的每個(gè)row中的row[1],,放在一個(gè)新的列表中”

col2 = [row[1] for row in M] 。

其結(jié)果就是一個(gè)包含了矩陣的第二列的新列表,。實(shí)際應(yīng)用中的列表解析可以更復(fù)雜:

>>> [row[1] + 1 for row in M]                # Add 1 to each item in column 2

[3,6,9]

>>> [row[1] for row in M if row[1] % 2 == 0] # Filter out odd items

[2,8]

例如,,這里的第一個(gè)操作,把它搜集到的每一個(gè)元素都加了1,,第二個(gè)使用了一個(gè)if條件語(yǔ)句,,通過使用%求余表達(dá)式(取余數(shù))過濾了結(jié)果中的奇數(shù)。列表解析創(chuàng)建了新的列表作為結(jié)果,,但是能夠在任何可迭代的對(duì)象上進(jìn)行迭代,。例如,這里我們將會(huì)使用列表解析去步進(jìn)坐標(biāo)的一個(gè)硬編碼列表和一個(gè)字符串:

>>> diag = [M[i][i] for i in [0,1,2]]      # Collect a diagonal from matrix

>>> diag

[1,5,9]

>>> doubles = [c * 2 for c in 'spam']        # Repeat characters in a string

>>> doubles

['ss','pp','aa','mm']

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多