背景
写代码的时候,你会发现你的代码越写越多。
然而,功能需要也越来越多,然后你的冗余代码就多得不能再多了~~~怎么办,我太难了。
那就寻求一些高级写法,一般的高级写法都是尽可能地短。
另外,把重复的代码抽取出来,封装成函数,每次使用直接调函数即可。
For循环赋值
前提条件:我创建了一个road类,这个类里面有这些属性。我先初始化给road赋值,然后再把这些对象放到roadObjList集合里面。
目标:从roadObjList集合里面取出每个road对象的objectid值,然后放入到新的列表里面。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
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
|
写法一:
1
2
3
|
objList = []
for r in roadObjList:
objList.append(r.objectid)
|
写法二:
1
|
objList = [r.objectid for r in roadObjList]
|
我补充几句
关于for循环遍历的写法,还有好几种,虽然写法很low,但是效果都是差不多的。
写法一:
1
2
3
|
for i,ele in enumerate (roadPointObjList):
print (i)
print (ele)
|
写法二:
1
2
3
|
for i in range ( 0 , len (roadPointObjList)):
print (i)
print (roadPointObjList[i])
|
总结
我觉得两种写法其实都是一样的,时间复杂度都是O(n),毕竟都要遍历for循环。
只是第二种写法一步到位,当然如果要在for循环里面作判断的话,那就选第一种写法了。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/Feng512275/article/details/99287816