成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python 技巧總結(jié)

JackJiang / 537人閱讀

摘要:內(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)

如果 xint,返回x÷y的商和余數(shù)組成的元組,(x//y, x%y)。
如果 xfloat,則返回 (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 b
and 與 or 優(yōu)先級
True or True and False    #=> True

造成結(jié)果為True的原因是因為短路求值,不是因為存在臆想中的優(yōu)先級問題--True or (True and False),orand` 一起使用,遵循自左向右計算原則。

參見:短路求值

裝飾器 示例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)   #=> 3
Dict.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

相關(guān)文章

  • 「碼個蛋」2017年200篇精選干貨集合

    摘要:讓你收獲滿滿碼個蛋從年月日推送第篇文章一年過去了已累積推文近篇文章,本文為年度精選,共計篇,按照類別整理便于讀者主題閱讀。本篇文章是今年的最后一篇技術(shù)文章,為了讓大家在家也能好好學(xué)習,特此花了幾個小時整理了這些文章。 showImg(https://segmentfault.com/img/remote/1460000013241596); 讓你收獲滿滿! 碼個蛋從2017年02月20...

    wangtdgoodluck 評論0 收藏0
  • Python 基礎(chǔ)起步 (十一) 寫在最后的話(附優(yōu)秀資源匯總)

    摘要:總結(jié)不知不覺作為一個小白已經(jīng)寫完了最最基礎(chǔ)的簡單教程,如果你也和我一樣從事金融行業(yè),或者毫無編程基礎(chǔ)的小白,希望我的教程可以幫到你,這是基礎(chǔ)起步的最終篇,我希望能和大家簡單介紹一下后續(xù)介紹以及很多幫助到我的優(yōu)秀的平臺。 總結(jié) 不知不覺作為一個小白已經(jīng)寫完了最最基礎(chǔ)的Python簡單教程,如果你也和我一樣從事金融行業(yè),或者毫無編程基礎(chǔ)的小白,希望我的教程可以幫到你,這是Python基礎(chǔ)起...

    mrcode 評論0 收藏0
  • Python 進階之路 (二) Dict 進階寶典,初二快樂!

    摘要:新年快樂大家好,今天是大年初二,身在國外沒有過年的氛圍,只能踏實寫寫文章,對社區(qū)做點貢獻,在此祝大家新年快樂上一期為大家梳理了一些的進階用法,今天我們來看字典的相關(guān)技巧,我個人在編程中對字典的使用非常頻繁,其實對于不是非常大的數(shù)據(jù)存儲需求, 新年快樂 大家好,今天是大年初二,身在國外沒有過年的氛圍,只能踏實寫寫文章,對社區(qū)做點貢獻,在此祝大家新年快樂!上一期為大家梳理了一些List的進...

    ChristmasBoy 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<