列表和字典的增刪操作是沒(méi)有返回值的,NoneM薄C纱А!卖擅。這是個(gè)很顯而易見(jiàn)的常識(shí)鸣奔。對(duì)list進(jìn)行append、insert惩阶、extend挎狸,或是對(duì)dict做update等等,是直接改變list/dict的內(nèi)容断楷,操作本身沒(méi)有返回值锨匆,或者說(shuō)返回為None。
In [1]: list_1 = [2,5,6,7,9]
In [2]: list_1.append(233)
In [3]: list_1.extend(['ha','ha','ha'])
In [4]: list_1
Out[4]: [2, 5, 6, 7, 9, 233, 'ha', 'ha', 'ha']
In [5]: list_1.pop(2)
Out[5]: 6
以上冬筒,In [2]
和In [3]
都是沒(méi)有Out輸出的恐锣。不過(guò)pop例外,它是有返回值的舞痰,也就是被刪掉的那顆的值土榴。
一切都很清楚明了,有什么好說(shuō)的呢响牛。唉玷禽,第一次在這個(gè)地方被絆倒并沒(méi)有覺(jué)得有什么值得說(shuō)的,不過(guò)是自己基礎(chǔ)不扎實(shí)而已呀打。但是昨天矢赁,同樣的錯(cuò)誤,老夫又犯了一次贬丛。嘛撩银,也就是,試圖把a(bǔ)ppend操作的結(jié)果賦值給一個(gè)新的列表豺憔,然后去取值的時(shí)候報(bào)錯(cuò)额获。
In [6]: list_2 = list_1.append('666')
In [7]: type(list_2)
Out[7]: NoneType
哎够庙,好尷尬。錯(cuò)誤犯一次抄邀,悄悄改正就好首启;犯兩次,就得拉出來(lái)公開(kāi)處刑才行撤摸。
我反思了一下毅桃,這大概是受pandas里DataFrame的影響(pandas是python的一個(gè)高階數(shù)據(jù)分析包,DataFrame是它的數(shù)據(jù)格式)准夷。通常對(duì)一個(gè)df進(jìn)行操作會(huì)返回一個(gè)副本/copy或者映射钥飞,然后順手賦值給一個(gè)新的變量。結(jié)果我就順到list這里了衫嵌。
所以常常說(shuō)哪里哪里是個(gè)坑读宙,有一半的原因是這個(gè)地方邏輯太復(fù)雜、混亂楔绞,還有一半(對(duì)我來(lái)說(shuō)是一大あ半)是因?yàn)榕c過(guò)往的經(jīng)驗(yàn)沖突導(dǎo)致的结闸。就像學(xué)Java的同學(xué)看到python里不加聲明的變量、函數(shù)堆在一起酒朵,會(huì)懵逼的不知所措桦锄。
羅胖(羅振宇)他們常說(shuō)存量、增量什么的蔫耽,這種觀點(diǎn)越來(lái)越有道理了结耀。存量屬于過(guò)去,如果它們已經(jīng)無(wú)法再當(dāng)前產(chǎn)生效用匙铡,就因該果斷舍棄图甜。追求增量才是正道。這從經(jīng)濟(jì)學(xué)的角度來(lái)看鳖眼,就是“沉默成本不是成本”黑毅。
最近還有一個(gè)讓我吃盡苦頭的東西,命名钦讳。給變量矿瘦、函數(shù)命名,給輸出文件命名蜂厅。有時(shí)候費(fèi)在命名上的精力比處理主要邏輯還多匪凡。特別是最近在寫(xiě)的那個(gè)需要在多個(gè)腳本之間傳遞文件膊畴,輸出名改變掘猿,輸入名也要跟著變。我遵循著最小變化的原則唇跨,小心翼翼的不去改變?cè)瓉?lái)的結(jié)構(gòu)稠通,結(jié)果多費(fèi)了好多事衬衬。總而言之改橘,文件名如果多次使用滋尉,一定要用變量傳遞,手動(dòng)輸入會(huì)死人的飞主。
唉狮惜,這也是必須狠狠地被坑幾次才能深刻的領(lǐng)悟。公眾號(hào)上的菜單欄也是這樣碌识,我一閑下來(lái)就手癢碾篡,不由得想去改改這改改那。改完之后簡(jiǎn)介就需要同步更新一下筏餐,然后一個(gè)晚上就在到處改名字玩兒了开泽。坑die魁瞪。我當(dāng)時(shí)就想穆律,這些名字要是可以用變量來(lái)引用多好啊。
人嘛导俘,總是在犯蠢的路上慢慢前進(jìn)的峦耘。只要還在進(jìn)步,就不至于感到絕望旅薄。這周還因?yàn)榧夹g(shù)收獲一只小迷妹贡歧。是個(gè)很好的態(tài)勢(shì)呢。再這樣下去赋秀,我是不是就可以靠技術(shù)俘獲小鮮肉了利朵。想想就很興奮啊猎莲,wakuwaku~~樟遣。(被楊小天使貼上猥瑣的標(biāo)簽之后,咋個(gè)還很得意的維護(hù)起來(lái)了呢瞻佛。)
接下來(lái)會(huì)更新一篇re模塊的使用心得绊困,吧大概。print('正則表達(dá)式真是個(gè)好東西'*10010)
.
原文地址:賣(mài)蠢日志 | 列表和字典的操作是沒(méi)有返回值的取视,None!6纭那先!售淡,來(lái)自我家公眾號(hào)揍堕,歡迎關(guān)注贮泞。