重點(diǎn)匯總-python-gitbook-重要點(diǎn)學(xué)習(xí)-2-數(shù)據(jù)庫(kù)相關(guān)

檢查列表是否為空的最好方法 ?

a = [ ]   # 如何檢查 a 是空列表良蒸?
if not a:      #   用隱藏的空列表的布爾值才是最Pythonic的方法.
  print ("List is empty")


if __name__ == "__main__":是干嘛的?

有時(shí)你需要你寫的模塊既可以直接的執(zhí)行,還可以被當(dāng)做模塊導(dǎo)入到其他模塊中去.通過檢查是不是主函數(shù),可以讓你的代碼只在它作為主程序運(yùn)行時(shí)執(zhí)行,而當(dāng)其他人調(diào)用你的模塊中的函數(shù)的時(shí)候不必執(zhí)行.


在循環(huán)中獲取索引(數(shù)組下標(biāo))

ints = [8, 23, 45, 12, 78]      #  如何獲取該列表的索引值喷斋?

最好的選擇就是用內(nèi)建函數(shù)enumerate

for idx, val in enumerate(ints):
    print ( idx, val )


Python中的 appen 和 extend 區(qū)別此改?

x = [1, 2, 3]
x.append([4, 5])
print (x)        #  輸出:[1, 2, 3, [4, 5]]

x = [1, 2, 3]
x.extend([4, 5])
print (x)        #  輸出:[1, 2, 3, 4, 5]

extend 接受一個(gè)參數(shù)患久,這個(gè)參數(shù)總是一個(gè) list元咙,并且把這個(gè) list 中的每個(gè)元素添加到原 list 中另萤。
append 接受一個(gè)參數(shù)湃密,這個(gè)參數(shù)可以是任何數(shù)據(jù)類型,并且簡(jiǎn)單地追加到 list 的尾部四敞。


當(dāng)一個(gè)字典被創(chuàng)建了,能不能在字典里添加元素?好像沒有.add()的方法.

In [28]: a = {'a':1}

In [29]: a['b'] = 1    # 只能賦值泛源,簡(jiǎn)單粗暴

In [30]: a
Out[30]: {'a': 1, 'b': 1}


在一行里獲取多個(gè)異常?

try:
    # 可能錯(cuò)的地方
except (IDontLIkeYouException, YouAreBeingMeanException) as e:
    pass    # 用括號(hào)擴(kuò)起來(lái)


如何移除換行符?

試試rstrip方法:

>>> 'test string\n'.rstrip()      # 必須 \n 在最后
'test string'

同樣也有lstripstrip方法:

>>> s = " \n  abc   def   "
>>> s.strip()
'abc   def'
>>> s.rstrip()
' \n  abc   def'
>>> s.lstrip()
'abc   def   '


鴨子類型

“當(dāng)看到一只鳥走起來(lái)像鴨子、游泳起來(lái)像鴨子忿危、叫起來(lái)也像鴨子达箍,那么這只鳥就可以被稱為鴨子∑坛”

我們并不關(guān)心對(duì)象是什么類型缎玫,到底是不是鴨子硬纤,只關(guān)心行為。

比如在python中赃磨,有很多file-like的東西筝家,比如StringIO,GzipFile,socket。它們有很多相同的方法邻辉,我們把它們當(dāng)作文件使用溪王。

又比如list.extend()方法中,我們并不關(guān)心它的參數(shù)是不是list,只要它是可迭代的,所以它的參數(shù)可以是list/tuple/dict/字符串/生成器等.

鴨子類型在動(dòng)態(tài)語(yǔ)言中經(jīng)常使用,非常靈活值骇,使得python不想java那樣專門去弄一大堆的設(shè)計(jì)模式莹菱。


為什么 Python 不支持函數(shù)重載?

在靜態(tài)語(yǔ)言中吱瘩,方法重載是希望類可以以統(tǒng)一的方式處理不同類型的數(shù)據(jù)提供了可能道伟。多個(gè)同名函數(shù)同時(shí)存在,具有不同的參數(shù)個(gè)數(shù)/類型搅裙,重載是一個(gè)類中多態(tài)性的一種表現(xiàn)皱卓。
而在動(dòng)態(tài)語(yǔ)言中,有鴨子類型部逮,如果走起路來(lái)像鴨子娜汁,叫起來(lái)也像鴨子,那么它就是鴨子兄朋。一個(gè)對(duì)象的特征不是由它的類型決定掐禁,而是通過對(duì)象中的方法決定,所以函數(shù)重載在動(dòng)態(tài)語(yǔ)言中就顯得沒有意義了颅和,因?yàn)楹瘮?shù)可以通過鴨子類型來(lái)處理不同類型的對(duì)象傅事,鴨子類型也是多態(tài)性的一種表現(xiàn)。
所以峡扩,并不太需要蹭越。


數(shù)據(jù)庫(kù)索引 (難)

聚集索引,非聚集索引,B-Tree,B+Tree,最左前綴原理
推薦: http://tech.meituan.com/mysql-index.html
MySQL索引背后的數(shù)據(jù)結(jié)構(gòu)及算法原理


Redis原理

Redis是什么?

  • 是一個(gè)完全開源免費(fèi)的key-value內(nèi)存數(shù)據(jù)庫(kù)
  • 通常被認(rèn)為是一個(gè)數(shù)據(jù)結(jié)構(gòu)服務(wù)器教届,主要是因?yàn)槠溆兄S富的數(shù)據(jù)結(jié)構(gòu) strings响鹃、maplist案训、sets买置、 sorted sets

Redis數(shù)據(jù)庫(kù)

通常局限點(diǎn)來(lái)說,Redis也以消息隊(duì)列的形式存在强霎,作為內(nèi)嵌的List存在忿项,滿足實(shí)時(shí)的高并發(fā)需求。在使用緩存的時(shí)候,redismemcached具有更多的優(yōu)勢(shì)轩触,并且支持更多的數(shù)據(jù)類型寞酿,把redis當(dāng)作一個(gè)中間存儲(chǔ)系統(tǒng),用來(lái)處理高并發(fā)的數(shù)據(jù)庫(kù)操作

Redis 優(yōu)點(diǎn)

  • 速度快:使用標(biāo)準(zhǔn)C寫怕膛,所有數(shù)據(jù)都在內(nèi)存中完成熟嫩,讀寫速度分別達(dá)到10萬(wàn)/20萬(wàn)
  • 持久化:對(duì)數(shù)據(jù)的更新采用Copy-on-write技術(shù),可以異步地保存到磁盤上褐捻,主要有兩種策略掸茅,一是根據(jù)時(shí)間,更新次數(shù)的快照(save 300 10 )二是基于語(yǔ)句追加方式(Append-only file柠逞,aof)
  • 自動(dòng)操作:對(duì)不同數(shù)據(jù)類型的操作都是自動(dòng)的昧狮,很安全
  • 快速的主--從復(fù)制,官方提供了一個(gè)數(shù)據(jù)板壮,Slave在21秒即完成了對(duì)Amazon網(wǎng)站10G key set的復(fù)制逗鸣。
  • Sharding技術(shù): 很容易將數(shù)據(jù)分布到多個(gè)Redis實(shí)例中,數(shù)據(jù)庫(kù)的擴(kuò)展是個(gè)永恒的話題绰精,在關(guān)系型數(shù)據(jù)庫(kù)中撒璧,主要是以添加硬件、以分區(qū)為主要技術(shù)形式的縱向擴(kuò)展解決了很多的應(yīng)用場(chǎng)景笨使,但隨著web2.0卿樱、移動(dòng)互聯(lián)網(wǎng)、云計(jì)算等應(yīng)用的興起硫椰,這種擴(kuò)展模式已經(jīng)不太適合了繁调,所以近年來(lái),像采用主從配置靶草、數(shù)據(jù)庫(kù)復(fù)制形式的蹄胰,Sharding這種技術(shù)把負(fù)載分布到多個(gè)特理節(jié)點(diǎn)上去的橫向擴(kuò)展方式用處越來(lái)越多。

Redis缺點(diǎn)

  • 是數(shù)據(jù)庫(kù)容量受到物理內(nèi)存的限制,不能用作海量數(shù)據(jù)的高性能讀寫,因此Redis適合的場(chǎng)景主要局限在較小數(shù)據(jù)量的高性能操作和運(yùn)算上奕翔。
  • Redis較難支持在線擴(kuò)容裕寨,在集群容量達(dá)到上限時(shí)在線擴(kuò)容會(huì)變得很復(fù)雜。為避免這一問題派继,運(yùn)維人員在系統(tǒng)上線時(shí)必須確保有足夠的空間帮坚,這對(duì)資源造成了很大的浪費(fèi)。


數(shù)據(jù)庫(kù)鎖機(jī)制 - 樂觀鎖與悲觀鎖

悲觀鎖:假定會(huì)發(fā)生并發(fā)沖突互艾,屏蔽一切可能違反數(shù)據(jù)完整性的操作

樂觀鎖:假設(shè)不會(huì)發(fā)生并發(fā)沖突,只在提交操作時(shí)檢查是否違反數(shù)據(jù)完整性讯泣。
參考文章


數(shù)據(jù)庫(kù) MVCC

MVCC百科


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末纫普,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌昨稼,老刑警劉巖节视,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異假栓,居然都是意外死亡寻行,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門匾荆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)拌蜘,“玉大人,你說我怎么就攤上這事牙丽〖蛭裕” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵烤芦,是天一觀的道長(zhǎng)举娩。 經(jīng)常有香客問我,道長(zhǎng)构罗,這世上最難降的妖魔是什么铜涉? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮遂唧,結(jié)果婚禮上芙代,老公的妹妹穿的比我還像新娘。我一直安慰自己蠢箩,他們只是感情好链蕊,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著谬泌,像睡著了一般滔韵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上掌实,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天陪蜻,我揣著相機(jī)與錄音,去河邊找鬼贱鼻。 笑死宴卖,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的邻悬。 我是一名探鬼主播症昏,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼父丰!你這毒婦竟也來(lái)了肝谭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎攘烛,沒想到半個(gè)月后魏滚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡坟漱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年鼠次,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片芋齿。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡腥寇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出沟突,到底是詐尸還是另有隱情花颗,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布惠拭,位于F島的核電站扩劝,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏职辅。R本人自食惡果不足惜棒呛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望域携。 院中可真熱鬧簇秒,春花似錦、人聲如沸秀鞭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)锋边。三九已至皱坛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間豆巨,已是汗流浹背剩辟。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留往扔,地道東北人贩猎。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像萍膛,于是被迫代替她去往敵國(guó)和親吭服。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容