溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python中經(jīng)常寫出來(lái)的冗余代碼有哪些

發(fā)布時(shí)間:2021-09-17 10:08:47 來(lái)源:億速云 閱讀:154 作者:柒染 欄目:web開發(fā)

python中經(jīng)常寫出來(lái)的冗余代碼有哪些 ,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

有一些同學(xué)是從其它語(yǔ)言遷移到Python的,所以寫Python代碼的時(shí)候,還帶有其它語(yǔ)言的一些語(yǔ)法特征。于是寫出來(lái)的Python代碼包含了大量沒(méi)什么用的無(wú)效代碼。我們今天來(lái)看看常見(jiàn)的無(wú)效代碼有哪些。

先定義再?gòu)?fù)制

列表和字典是重災(zāi)區(qū)。有一些人在Python里面創(chuàng)建一個(gè)元素已經(jīng)確定的列表,卻這樣寫代碼:

a = list() a.append('x') a.append('y') a.append('z')

但實(shí)際上,你可以直接一行代碼寫為:

a = ['x', 'y', 'z']

初始化一個(gè)元素已經(jīng)確定的字典,有人也喜歡這樣寫代碼:

a = dict() a['name'] = 'kingname' a['age'] = 100 a['address'] = 'xx'

但實(shí)際上,一行代碼就可以搞定了:

a = {'name': 'kingname', 'age': 100, 'address': 'xx'}

還有些人字典的Key存入列表,是這樣寫代碼的:

key_list = [] for key in target_dict.keys():     key_list.append(key)

但實(shí)際上,一行代碼就搞定了:

key_list = list(target_dict)

條件判斷真、假、是否為空

有些人在寫條件判斷的時(shí)候,是這樣寫的:

if a == False:     print('xx') if a == []:     print('xx') if a == '':     print('xx') if a == None:     print('xx') if a == 0:     print('xx')

但實(shí)際上,這些判斷全部可以合并成一個(gè):

if not a:     print('xx')

同理,對(duì)于判斷真、非空、非零的代碼:

if a == True if len(a) > 0 if a != 0 if a != None

全部都可以合并成:

if a:     print('xxx')

稍稍有點(diǎn)技術(shù)含量的冗余

有些人在寫條件判斷的分支檢測(cè)的時(shí)候,是這樣寫的:

for ele in target_list:     if ele > 0:         print('列表中至少有一個(gè)數(shù)字大于0')         return True     else:         continue

這里的else: continue實(shí)際上沒(méi)有任何作用,完全可以刪除:

for ele in target_list:     if ele > 0:         print('列表中至少有一個(gè)數(shù)字大于0')         return True

列表推導(dǎo)式式我們經(jīng)常使用的一種語(yǔ)法糖。但Python里面,其實(shí)還有一個(gè)生成器推到式,它寫為(x for x in  yyy),這里使用小括號(hào)。所以對(duì)于下面這幾行代碼:

a = ['1', '2', '3'] sum_result = sum([int(x) for x in a])

知道生成器推到式的同學(xué)可能會(huì)這樣寫:

a = ['1', '2', '3'] sum_result = sum((int(x) for x in a))

但實(shí)際上,如果一個(gè)生成器推到式作為另一個(gè)函數(shù)的唯一參數(shù),那么可以省略內(nèi)層括號(hào):

a = ['1', '2', '3'] sum_result = sum(int(x) for x in a)

關(guān)于python中經(jīng)常寫出來(lái)的冗余代碼有哪些 問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI