python for循环赋值问题
背景
写代码的时候,你会发现你的代码越写越多。
然而,功能需要也越来越多,然后你的冗余代码就多得不能再多了~~~怎么办,我太难了。
那就寻求一些高级写法,一般的高级写法都是尽可能地短。
另外,把重复的代码抽取出来,封装成函数,每次使用直接调函数即可。
For循环赋值
前提条件:我创建了一个road类,这个类里面有这些属性。我先初始化给road赋值,然后再把这些对象放到roadObjList集合里面。
目标:从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]
我补充几句
关于for循环遍历的写法,还有好几种,虽然写法很low,但是效果都是差不多的。
写法一:
for i,ele in enumerate(roadPointObjList): print(i) print(ele)
写法二:
for i in range(0, len(roadPointObjList)): print(i) print(roadPointObjList[i])
总结
我觉得两种写法其实都是一样的,时间复杂度都是O(n),毕竟都要遍历for循环。
只是第二种写法一步到位,当然如果要在for循环里面作判断的话,那就选第一种写法了。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
python库pycryptodom加密技术探索(公钥加密私钥加密)
这篇文章主要为大家介绍了python库pycryptodom加密技术探索(公钥加密私钥加密),有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2024-01-01Matplotlib中%matplotlib inline如何使用
这篇文章主要介绍了Matplotlib中%matplotlib inline如何使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-07-07Python+selenium 获取浏览器窗口坐标、句柄的方法
今天小编就为大家分享一篇Python+selenium 获取浏览器窗口坐标、句柄的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-10-10Python-re中search()函数的用法详解(查找ip)
这篇文章主要介绍了Python-re中search()函数的用法-----查找ip,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-03-03
最新评论