摘要:內(nèi)置函數(shù)遍歷,并索引輸出如果為,返回的商和余數(shù)組成的元組,。參見短路求值裝飾器示例或或結(jié)果數(shù)組轉(zhuǎ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)]短路求值 三元運算
利用 python 邏輯運算的短路求值特性,我們可以實現(xiàn)python不支持的三元運算符 bool ? a : b :
bool and a or b # 其中要求 a, b 為真
當然有更pythonic 的實現(xiàn)方法:
a if bool else band 與 or 優(yōu)先級
True or True and False #=> True
造成結(jié)果為True的原因是因為短路求值,不是因為存在臆想中的優(yōu)先級問題--True or (True and False),or 和 and` 一起使用,遵循自左向右計算原則。
參見:短路求值
裝飾器 示例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默認值為None。相比較,dict["key"] 只能獲取 dict 中存在的key的值,如果不存在則觸發(fā) KeyError。利用此方法,在對字典進行某些運算時會更優(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 并返回它。當一個默認的值是一個你可以修改的對象的時候這是很有用的。
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)
參見:Python:字典的劇本
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/40695.html
摘要:讓你收獲滿滿碼個蛋從年月日推送第篇文章一年過去了已累積推文近篇文章,本文為年度精選,共計篇,按照類別整理便于讀者主題閱讀。本篇文章是今年的最后一篇技術(shù)文章,為了讓大家在家也能好好學(xué)習,特此花了幾個小時整理了這些文章。 showImg(https://segmentfault.com/img/remote/1460000013241596); 讓你收獲滿滿! 碼個蛋從2017年02月20...
摘要:總結(jié)不知不覺作為一個小白已經(jīng)寫完了最最基礎(chǔ)的簡單教程,如果你也和我一樣從事金融行業(yè),或者毫無編程基礎(chǔ)的小白,希望我的教程可以幫到你,這是基礎(chǔ)起步的最終篇,我希望能和大家簡單介紹一下后續(xù)介紹以及很多幫助到我的優(yōu)秀的平臺。 總結(jié) 不知不覺作為一個小白已經(jīng)寫完了最最基礎(chǔ)的Python簡單教程,如果你也和我一樣從事金融行業(yè),或者毫無編程基礎(chǔ)的小白,希望我的教程可以幫到你,這是Python基礎(chǔ)起...
摘要:新年快樂大家好,今天是大年初二,身在國外沒有過年的氛圍,只能踏實寫寫文章,對社區(qū)做點貢獻,在此祝大家新年快樂上一期為大家梳理了一些的進階用法,今天我們來看字典的相關(guān)技巧,我個人在編程中對字典的使用非常頻繁,其實對于不是非常大的數(shù)據(jù)存儲需求, 新年快樂 大家好,今天是大年初二,身在國外沒有過年的氛圍,只能踏實寫寫文章,對社區(qū)做點貢獻,在此祝大家新年快樂!上一期為大家梳理了一些List的進...
閱讀 2121·2021-11-23 10:06
閱讀 3482·2021-11-11 16:54
閱讀 3349·2019-08-29 17:31
閱讀 3573·2019-08-29 17:05
閱讀 2173·2019-08-26 13:36
閱讀 2165·2019-08-26 12:17
閱讀 530·2019-08-26 12:12
閱讀 1679·2019-08-26 10:19