摘要:不要疑惑,告訴你答案這個(gè)代表正負(fù)號(hào)的正。雖然一點(diǎn)技術(shù)含量沒(méi)有,但是你要懂序列也許叫可迭代對(duì)象更為合適,但是我喜歡叫序列。
數(shù)據(jù)結(jié)構(gòu) 可變類(lèi)型與不可變類(lèi)型(重頭戲)
基操: 可變類(lèi)型:[], {} # 可增刪改 查 不可變類(lèi)型: int float str () # 無(wú)法增刪改, 只可查 升操: + 與 += 的區(qū)別: 也許很多人會(huì)說(shuō) + 和 += 是完全等價(jià)的,或者知道區(qū)別,但也說(shuō)不出個(gè)所以然 看我操作:(忽略Python小整數(shù)池的內(nèi)存固定分配問(wèn)題) +: 無(wú)論是可變類(lèi)型 還是 不可變類(lèi)型, 都是新指向的空間 +=: 對(duì)于可變類(lèi)型:原地操作,原指向,原空間 對(duì)于不可變類(lèi)型:異地操作,新指向,新空間 我這里故意搞你一下思緒:見(jiàn)過(guò) a=+1 么,可以運(yùn)行試試。 不要疑惑,告訴你答案:這個(gè)+1 代表 正負(fù)號(hào)的 正1。 雖然一點(diǎn)技術(shù)含量沒(méi)有,但是你要懂序列
也許叫可迭代對(duì)象更為合適,但是我喜歡叫序列。 我認(rèn)知的序列包括 [], {}, () # 請(qǐng)記住這個(gè)序列,數(shù)據(jù)處理最為重要 此外說(shuō)明一下: 1. 我的代碼大多都是Ipython運(yùn)行完貼上去的, 所以你看見(jiàn)的out格式就代表print了,要懂~ 2. 所寫(xiě)的大多都是實(shí)際經(jīng)驗(yàn)中常用的 或者 冷門(mén)但是好用的 3. 列出的函數(shù)API有的嫌棄麻煩沒(méi)有寫(xiě)參數(shù),你要懂,(我這里沒(méi)有顧及0入門(mén)的小白,諒解)元祖
基操: 元祖屬于不可變類(lèi)型,不能增刪改,所以函數(shù)少的可憐 我用help查了一下,只有下面這2個(gè)函數(shù)。。。。。。 a = (1,2,3) count() # 統(tǒng)計(jì)元素個(gè)數(shù) index() # 查找元素,并返回位置 升操: a = (1) # 哥們注意,這不是元祖,這是 整形1 ..... a = (1,) # 這才是元祖,單元素元祖需要加逗號(hào),記住即可,不必糾結(jié)常用字符串操作:
基操: a = " 你2好 " a.find("你") # 搜索目標(biāo)字符串,找到 則 返回索引,找不到 則 返回-1 (推薦使用) a.split(2) # 注意:不給參數(shù),默認(rèn)按所有 空白符 切割 a.strip() 升操: 1. string庫(kù)的靈活使用 In [1]: import string In [2]: string.digits Out[2]: "0123456789" In [8]: string.ascii_letters Out[8]: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" In [9]: string.ascii_lowercase Out[9]: "abcdefghijklmnopqrstuvwxyz" In [10]: string.ascii_uppercase Out[10]: "ABCDEFGHIJKLMNOPQRSTUVWXYZ" In [12]: string.punctuation Out[12]: "!"#$%&"()*+,-./:;<=>?@[]^_`{|}~" 2. python3.6 - f模板字符串 新語(yǔ)法引出來(lái),只為刷三觀,具體自己去學(xué) 學(xué)過(guò)ES6可能會(huì)很熟悉 -> 其實(shí)就是模板字符串 (ES6和python語(yǔ)法真的很像) In [15]: name = "張三" In [16]: f"名字:{name}" Out[16]: "名字:張三" 如果你想學(xué)習(xí)更多f原語(yǔ),請(qǐng)參考這位老哥-> https://blog.csdn.net/sunxb10/article/details/81036693常用列表操作:
a = [4,3,2,1] 基操: a.extend() # 參數(shù)如果是序列,則把這個(gè)序列解開(kāi),一個(gè)一個(gè)插入 a.append() # 參數(shù)寫(xiě)什么,插入的就是什么 升操: a[::] # 開(kāi)辟空間 復(fù)制列表 a.sort(key=) # 記住這個(gè)key,可以寫(xiě)函數(shù)名 (后面也會(huì)寫(xiě)高階函數(shù)的文章)常用字典操作:
基操: a = {1:2} a.update({key:value}) # 有則更新,無(wú)則添加(Key-Value算一個(gè)整體) a.setdefault(key, value) # 有此Key則不變 并返回value,無(wú)則插入key,value并返回None a.keys() # 返回所有 key (注意:返回值可以理解為 集合對(duì)象) a.values() # 返回所有 value (同上,返回值可理解為 集合對(duì)象) a.items() # 返回所有 鍵值對(duì) (同上,返回值可理解為 集合對(duì)象) 升操: 1. Key是字典作為序列的默認(rèn)首選項(xiàng) 解釋對(duì)列表、元祖等序列等一系列操作如果應(yīng)用在 字典上 就會(huì)只操作 Key 2. 雙層序列 和 字典 轉(zhuǎn)換: seq2dict: dict( ((1,2),(3,4)) ) dict2seq: tuple( {1:2,3:4}.items() )常用集合操作:
大前提: 集合=無(wú)序=去重 基操:add | pop | remove | update 和 & | - ^ 升操:(集合的初始化方式的差異) In [57]: s1 = set("abcd") # 理解方式: 此初始化方式 會(huì)先遍歷 整個(gè) 字符串 In [58]: s1 Out[58]: {"a", "b", "c", "d"} In [59]: s2 = {"abcd"} # 理解方式: 此初始化方法把 整個(gè) 字符串當(dāng)做集合的 一個(gè) 元素 In [60]: s2 Out[60]: {"abcd"}
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/43836.html
摘要:解釋就相當(dāng)于把每個(gè)序列元素的每一個(gè)單獨(dú)用一個(gè)管道函數(shù)處理,再把他們按順序組合成一個(gè)新可迭代對(duì)象注意這個(gè)管道函數(shù)只能是單參數(shù)函數(shù),如果想傳遞多個(gè)參數(shù)怎么辦使用偏函數(shù)怕有些人看不懂,這里就不用了,而是用普通函數(shù)定義方式固定值固定值固定值固定值固 map In [25]: list(map(lambda a:a**2, [1,2,3,4])) Out[25]: [1, 4, 9, 16] 解...
摘要:多線(xiàn)程對(duì)于爬蟲(chóng)方面也可以表現(xiàn)出較好的性能。計(jì)算密集型就別想多線(xiàn)程了,一律多進(jìn)程。所以同一時(shí)刻最大的并行線(xiàn)程數(shù)進(jìn)程數(shù)的核數(shù)這條我的個(gè)人理解很模糊,參考吧多線(xiàn)程多線(xiàn)程有種通過(guò)的那種方式,非常普遍,此處就不寫(xiě)了。 GIL的理解 GIL這個(gè)話(huà)題至今也是個(gè)爭(zhēng)議較多的,對(duì)于不用應(yīng)用場(chǎng)景對(duì)線(xiàn)程的需求也就不同,說(shuō)下我聽(tīng)過(guò)的優(yōu)點(diǎn): 1. 我沒(méi)有用過(guò)其他語(yǔ)言的多線(xiàn)程,所以無(wú)法比較什么,但是對(duì)于I/O而言,...
摘要:也就是給原函數(shù)加個(gè)外殼。類(lèi)裝飾填充了啊我是原函數(shù)類(lèi)裝飾填充了啊我是原函數(shù)說(shuō)明后面關(guān)于類(lèi)的裝飾器如果理解困難當(dāng)做了解即可,用的也少。 可迭代對(duì)象、生成器、迭代器三者的關(guān)系 1. 迭代器一定是可迭代對(duì)象 2. 生成器是迭代器的一種 3. 可迭代對(duì)象:必須實(shí)現(xiàn) __iter__方法 4. 迭代器:必須實(shí)現(xiàn) __iter__方法 和 __next__ 方法 5. 生成器:必須實(shí)現(xiàn) __it...
摘要:類(lèi)的繼承類(lèi)繼承有三種調(diào)用方式,其實(shí)是有區(qū)別的,聽(tīng)我慢慢道來(lái)第一種父類(lèi)方法參數(shù)直接調(diào)用第二種方法參數(shù)直接調(diào)用在誰(shuí)的類(lèi)下調(diào)用,就找此類(lèi)對(duì)應(yīng)的下一個(gè)就是要繼承的第三種方法參數(shù)找類(lèi)名對(duì)應(yīng)的的下一個(gè),就是繼承的,一般寫(xiě)本身的類(lèi)名上下文管理器上下文管理 類(lèi)的繼承 類(lèi)繼承有三種調(diào)用方式,其實(shí)是 有區(qū)別 的,聽(tīng)我慢慢道來(lái) class A: def say(self, name): ...
閱讀 2701·2023-04-26 02:57
閱讀 1587·2023-04-25 21:40
閱讀 2498·2021-11-24 09:39
閱讀 3743·2021-08-30 09:49
閱讀 918·2019-08-30 15:54
閱讀 1306·2019-08-30 15:52
閱讀 2327·2019-08-30 15:44
閱讀 1404·2019-08-28 18:27