背景
寫代碼的時候,你會發(fā)現(xiàn)你的代碼越寫越多。
然而,功能需要也越來越多,然后你的冗余代碼就多得不能再多了~~~怎么辦,我太難了。
那就尋求一些高級寫法,一般的高級寫法都是盡可能地短。
另外,把重復(fù)的代碼抽取出來,封裝成函數(shù),每次使用直接調(diào)函數(shù)即可。
For循環(huán)賦值
前提條件:我創(chuàng)建了一個road類,這個類里面有這些屬性。我先初始化給road賦值,然后再把這些對象放到roadObjList集合里面。
目標(biāo):從roadObjList集合里面取出每個road對象的objectid值,然后放入到新的列表里面。
class road():
def __init__(self,gid,objectid,name,width,direction,speed,type,snode,enode,length,startX,startY,endX,endY):
self.gid= gid
self.objectid = objectid
self.name = name
self.width = width
self.direction = direction
self.speed = speed
self.type = type
self.snode = snode
self.enode = enode
self.length = length
self.startX = startX
self.startY = startY
self.endX = endX
self.endY = endY
寫法一:
objList = []
for r in roadObjList:
objList.append(r.objectid)
寫法二:
objList = [r.objectid for r in roadObjList]
補充
關(guān)于for循環(huán)遍歷的寫法,還有好幾種,雖然寫法很low,但是效果都是差不多的。
寫法一:
for i,ele in enumerate(roadPointObjList):
print(i)
print(ele)
寫法二:
for i in range(0, len(roadPointObjList)):
print(i)
print(roadPointObjList[i])
總結(jié)
我覺得兩種寫法其實都是一樣的,時間復(fù)雜度都是O(n),畢竟都要遍歷for循環(huán)。
只是第二種寫法一步到位,當(dāng)然如果要在for循環(huán)里面作判斷的話,那就選第一種寫法了。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
