日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
一日一技:你一定經(jīng)常寫(xiě)出來(lái)的冗余代碼

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

創(chuàng)新互聯(lián)公司長(zhǎng)期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為渭濱企業(yè)提供專業(yè)的成都網(wǎng)站制作、成都網(wǎng)站建設(shè),渭濱網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

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

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

 
 
 
 
  1. a = list()
  2. a.append('x')
  3. a.append('y')
  4. a.append('z')

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

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

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

 
 
 
 
  1. a = dict()
  2. a['name'] = 'kingname'
  3. a['age'] = 100
  4. a['address'] = 'xx'

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

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

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

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

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

 
 
 
 
  1. key_list = list(target_dict)

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

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

 
 
 
 
  1. if a == False:
  2.     print('xx')
  3. if a == []:
  4.     print('xx')
  5. if a == '':
  6.     print('xx')
  7. if a == None:
  8.     print('xx')
  9. if a == 0:
  10.     print('xx')

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

 
 
 
 
  1. if not a:
  2.     print('xx')

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

 
 
 
 
  1. if a == True
  2. if len(a) > 0
  3. if a != 0
  4. if a != None

全部都可以合并成:

 
 
 
 
  1. if a:
  2.     print('xxx')

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

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

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

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

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

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

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

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

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

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

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

大家也可以在評(píng)論區(qū)說(shuō)說(shuō)你知道的其它冗余寫(xiě)法。

本文轉(zhuǎn)載自微信公眾號(hào)「未聞Code」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系未聞Code公眾號(hào)。


當(dāng)前文章:一日一技:你一定經(jīng)常寫(xiě)出來(lái)的冗余代碼
文章源于:http://www.dlmjj.cn/article/dhiiojo.html