摘要:內(nèi)置函數(shù)遍歷,并索引輸出如果為,返回的商和余數(shù)組成的元組,。參見(jiàn)短路求值裝飾器示例或或結(jié)果數(shù)組轉(zhuǎn)置矩陣碾平分組字典,互換如果存在,返回,否則返回,默認(rèn)值為。相比較,只能獲取中存在的的值,如果不存在則觸發(fā)。
內(nèi)置函數(shù) enumerate
enumerate(list[,start=0]):遍歷list,并索引
my_list = ["apple", "banana", "grapes", "pear"] for i, value in enumerate(my_list, 1): print(i, value)
輸出:
(1, "apple") (2, "banana") (3, "grapes") (4, "pear")divmod(x,y)
如果 x 為 int,返回x÷y的商和余數(shù)組成的元組,(x//y, x%y)。
如果 x 為 float,則返回 (math.floor(x / y), x%y)。
可以以此很方便的形成二維數(shù)組:
>>>[divmod(i, 3) for i in range(9)] [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]短路求值 三元運(yùn)算
利用 python 邏輯運(yùn)算的短路求值特性,我們可以實(shí)現(xiàn)python不支持的三元運(yùn)算符 bool ? a : b :
bool and a or b # 其中要求 a, b 為真
當(dāng)然有更pythonic 的實(shí)現(xiàn)方法:
a if bool else band 與 or 優(yōu)先級(jí)
True or True and False #=> True
造成結(jié)果為True的原因是因?yàn)槎搪非笾担皇且驗(yàn)榇嬖谝芟胫械膬?yōu)先級(jí)問(wèn)題--True or (True and False),or 和 and` 一起使用,遵循自左向右計(jì)算原則。
參見(jiàn):短路求值
裝飾器 示例1:table = [i * i for i in range(5)]
或:
def call(*argv, **kwargs): def call_fn(fn): return fn(*argv, **kwargs) return call_fn
@call(5) def table(n): value = [] for i in range(n): value.append(i*i) return value
或:
@list @call(5) def table(n): for i in range(n): yield i * i
結(jié)果:
len(table), table[3] #=> (5, 9)數(shù)組(List) 轉(zhuǎn)置矩陣
m = [[1,2],[3,4]] zip(*m)碾平list
a = [1, 2, [3, 4], [[5, 6], [7, 8]]] flatten = lambda x: [y for l in x for y in flatten(l)] if type(x) is list else [x] flatten(a) # [1,2,3,4,5,6,7,8]list分組
a=[3, 8, 9, 4, 1, 10, 6, 7, 2, 5] print([a[i:i+3] for i in range(0,len(a),3)]) # [[3, 8, 9], [4, 1, 10], [6, 7, 2], [5]]字典(Dict) key,value互換
m = {"a": 1, "b": 2, "c": 3, "d": 4} {v: k for k, v in m.items()} # {1: "a", 2: "b", 3: "c", 4: "d"}Dict.get()
dict.get(key[, default=None]): 如果key存在,返回dict[key],否則返回default,default默認(rèn)值為None。相比較,dict["key"] 只能獲取 dict 中存在的key的值,如果不存在則觸發(fā) KeyError。利用此方法,在對(duì)字典進(jìn)行某些運(yùn)算時(shí)會(huì)更優(yōu)雅:
if key not in dct: dct[key] = 0 dct[key] = dct[key] + 1
dct[key] = dct.get(key, 0) + 1
d = { "a": 1, "b": 2, } d.get("c", 3) #=> 3Dict.setdefault()
Dict.setdefault(key, default):如果存在,返回 dct[key],不存在則把 dct[key] 設(shè)為 default 并返回它。當(dāng)一個(gè)默認(rèn)的值是一個(gè)你可以修改的對(duì)象的時(shí)候這是很有用的。
dct = {} for key, value in data: if key in dct: dct[key].append(value) else: dct[key] = [value]
dct = {} for (key, value) in data: group = dct.setdefault(key, []) # key might exist already group.append(value)
參見(jiàn):Python:字典的劇本
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/40695.html
摘要:讓你收獲滿滿碼個(gè)蛋從年月日推送第篇文章一年過(guò)去了已累積推文近篇文章,本文為年度精選,共計(jì)篇,按照類別整理便于讀者主題閱讀。本篇文章是今年的最后一篇技術(shù)文章,為了讓大家在家也能好好學(xué)習(xí),特此花了幾個(gè)小時(shí)整理了這些文章。 showImg(https://segmentfault.com/img/remote/1460000013241596); 讓你收獲滿滿! 碼個(gè)蛋從2017年02月20...
摘要:總結(jié)不知不覺(jué)作為一個(gè)小白已經(jīng)寫完了最最基礎(chǔ)的簡(jiǎn)單教程,如果你也和我一樣從事金融行業(yè),或者毫無(wú)編程基礎(chǔ)的小白,希望我的教程可以幫到你,這是基礎(chǔ)起步的最終篇,我希望能和大家簡(jiǎn)單介紹一下后續(xù)介紹以及很多幫助到我的優(yōu)秀的平臺(tái)。 總結(jié) 不知不覺(jué)作為一個(gè)小白已經(jīng)寫完了最最基礎(chǔ)的Python簡(jiǎn)單教程,如果你也和我一樣從事金融行業(yè),或者毫無(wú)編程基礎(chǔ)的小白,希望我的教程可以幫到你,這是Python基礎(chǔ)起...
摘要:新年快樂(lè)大家好,今天是大年初二,身在國(guó)外沒(méi)有過(guò)年的氛圍,只能踏實(shí)寫寫文章,對(duì)社區(qū)做點(diǎn)貢獻(xiàn),在此祝大家新年快樂(lè)上一期為大家梳理了一些的進(jìn)階用法,今天我們來(lái)看字典的相關(guān)技巧,我個(gè)人在編程中對(duì)字典的使用非常頻繁,其實(shí)對(duì)于不是非常大的數(shù)據(jù)存儲(chǔ)需求, 新年快樂(lè) 大家好,今天是大年初二,身在國(guó)外沒(méi)有過(guò)年的氛圍,只能踏實(shí)寫寫文章,對(duì)社區(qū)做點(diǎn)貢獻(xiàn),在此祝大家新年快樂(lè)!上一期為大家梳理了一些List的進(jìn)...
閱讀 2105·2021-11-23 10:06
閱讀 3456·2021-11-11 16:54
閱讀 3337·2019-08-29 17:31
閱讀 3563·2019-08-29 17:05
閱讀 2166·2019-08-26 13:36
閱讀 2155·2019-08-26 12:17
閱讀 520·2019-08-26 12:12
閱讀 1668·2019-08-26 10:19