XML DOM 獲取節(jié)點值
869
2025-04-02
假設(shè)有這樣一個例子:
一個函數(shù)接收兩個參數(shù),第一個參數(shù)為一個字典,第二個參數(shù)為一個列表,我們要把列表中的每一個元素去查字典,如果能夠查詢到,那么就獲取值,如果不能查詢到,就跳過。
例如:
輸入:{'a': 1, 'b': 2, 'c': 3}? 和 ['a', 'd', 'c'],那么打印:
a=1 c=3
我們可能會這樣寫代碼:
def referer_dict(target, keys): for k in keys: if k in target: print(f'{k}={target[k]}')
那么有沒有可能把判斷k是否在?target這個操作去掉呢?也可以:
def referer_dict(target, keys): for k in keys: values = target.get(k, None) values is None or print(f'{k}={target[k]}')
但這種寫法實際上并沒有節(jié)省代碼行數(shù),不如這樣改:
def referer_dict(target, keys): for k in keys: k not in target or print(f'{k}={target[k]}')
接下來還可以繼續(xù)優(yōu)化成一行代碼:
def referer_dict(target, keys): [print(f'{k}={target[k]}') for k in keys if k in target]
停。
再這樣魔改下去這個函數(shù)都可以去掉。總共只需要1行代碼。但是這樣炫技并不可取。代碼可讀性和可維護(hù)性比炫技重要一萬倍。
第四種寫法,純粹就是為了湊出這個打印結(jié)果而強行使用了列表推導(dǎo)式,毫無可讀性,別人接手這個代碼也難以維護(hù)。
保持 Python 的自文檔性,優(yōu)秀的 Python 代碼,本身就是最好的文檔,連注釋都不需要就能讓人理解。
Python
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。