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中如何对多变量连续赋值
看到一段代码,如下 self.batch_size = batch_size = 128 初一看很诧异,仔细想想其实很合理的. 在python可能会需要同时声明多个变量,并对多个变量赋予相同的初始值,可以采用如下的方式赋值 a=b=c=1 但这里也需要注意,如果赋值为列表或者字典,比如 a=b=c=[1,2,3] 则a.b.c都是指向列表的指针,而不是复制,改变一个,其它的也会改变. 比如令 a[1] = 4, 则 b=[1,4,3] python 赋值和拷贝 你真的了解吗? 现象:先上一段代码
-
python模块中判断全局变量的赋值的实例讲解
1.在模块中,我们需要判断__name__是否被赋值为"__main__". python fibo.py <arguments> 2.在脚本执行的情况下,模块的__name__属性将被赋值为__main__,这就是原因所在. $ python fibo.py 50 0 1 1 2 3 5 8 13 21 34 3.若以模块导入,则不会执行: >>> import fibo >>> 知识点扩展: Python动态声明变量赋值代码实例 通过
-
Python连续赋值需要注意的一些问题
Python连续赋值的注意事项 在python中是可以使用连续赋值的方式来一次为多个变量进行赋值的,比如: a = b = c = 1 a, b, c = 1, 1, 1 这些都可以完成变量的赋值,但是就有一个问题了,比如: a = 3 a, b = 1, a 如果按照正常的思维逻辑,先进行a = 1,在进行b = a,最后b应该等于1,但是这里b应该等于3,因为在连续赋值语句中等式右边其实都是局部变量,而不是真正的变量值本身,比如,上面例子中右边的a,在python解析的时候,只是把变量a的指
-
python 使用pandas同时对多列进行赋值
如dataframe data1['月份']=int(month) #加入月份和企业名称 data1['企业']=parmentname 可以增加单列,并赋值,如果想同时对多列进行赋值 data1['月份','企业']=int(month) , parmentname #加入月份和企业名称 会出错 ValueError: Length of values does not match length of index data[['合计','平均']]='数据','月份' 类似这样的,也无效 Ke
-
python批量创建变量并赋值操作
一,简单的情况: 核心是exec函数,exec函数可以执行我们输入的代码字符串.exec函数的简单例子: exec ('print "hello world"') hello world 可以很清晰的看到,我们给exec传入一个字符串'print "hello world"',exec是执行字符串里面的代码print "hello world".根据这个特性,我们可以用占位符实现我们对变量的定义,如: exec ("temp%s=1&q
-
Python基础之赋值,浅拷贝,深拷贝的区别
一.赋值 不会开辟新的内存空间,只是复制了新对象的引用.所以当一个数据发生变化时,另外一个数据也会随之改变. 二. 浅拷贝 创建新对象,其内容是对原对象的引用.浅拷贝之所以称为浅拷贝,是因为它仅仅只拷贝了第一层,即只拷贝了最外层的对象本身,内部的元素都只是拷贝了一个引用而已,即内部元素如果被修改,则另外一个数据也会发生变化. 浅拷贝的三种形式: A = [1, 2, 3, 4] 切片操作 # 第1种 B = A[:] # 第2种 B = [a for a in A] 工厂函数 B = list(
-
python 实现循环定义、赋值多个变量的操作
exec函数,可以循环定义.赋值多个变量 exec ("temp%s=1"%1) 这段代码的意思是,让exec执行temp1=1.字符串里面的%s由'1'代替了. 我们在外面再套一个循环就可以实现对多个变量的定义了. for i in range(10): exec ("temp%s=1"%i) 在这里,通过一个循环来生成10个变量,i的变化从0到9.用变量i替代%s,所以在每次循环里面,分别给temp0.temp1.temp2--赋值为1. 如果想要替换多个占位符
-
python for循环赋值问题
背景 写代码的时候,你会发现你的代码越写越多. 然而,功能需要也越来越多,然后你的冗余代码就多得不能再多了~~~怎么办,我太难了. 那就寻求一些高级写法,一般的高级写法都是尽可能地短. 另外,把重复的代码抽取出来,封装成函数,每次使用直接调函数即可. For循环赋值 前提条件:我创建了一个road类,这个类里面有这些属性.我先初始化给road赋值,然后再把这些对象放到roadObjList集合里面. 目标:从roadObjList集合里面取出每个road对象的objectid值,然后放入到新的列
-
Python创建一个空的dataframe,并循环赋值的方法
如下所示: # 创建一个空的 DataFrame df_empty = pd.DataFrame() #或者 df_empty = pd.DataFrame(columns=['A', 'B', 'C', 'D']) #添加数据 a为一个新的dataframe df_empty = df_empty.append(a) 以上这篇Python创建一个空的dataframe,并循环赋值的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
python字符串循环左移
本文实例为大家分享了python字符串循环左移的具体代码,供大家参考,具体内容如下 字符串循环左移 给定一个字符串S[0-N-1],要求把S的前k个字符移动到S的尾部,如把字符串"abcdef"前面的2个字符'a'.'b'移动到字符串的尾部,得到新字符串"cdefab":即字符串循环左移k位. 循环左移k位等价于循环右移n-k位. 算法要求: 时间复杂度为 O(n),空间复杂度为 O(1). 分析思路: 暴力移位: 每次循环左移1位,调用k次即可 时间复杂度O(kN
-
Python for循环及基础用法详解
Python 中的循环语句有 2 种,分别是 while 循环和 for 循环,前面章节已经对 while 做了详细的讲解,本节给大家介绍 for 循环,它常用于遍历字符串.列表.元组.字典.集合等序列类型,逐个获取序列中的各个元素. for 循环的语法格式如下: for 迭代变量 in 字符串|列表|元组|字典|集合: 代码块 格式中,迭代变量用于存放从序列类型变量中读取出来的元素,所以一般不会在循环中对迭代变量手动赋值:代码块指的是具有相同缩进格式的多行代码(和 while 一样),由于和循
-
浅谈python for循环的巧妙运用(迭代、列表生成式)
介绍 我们可以通过for循环来迭代list.tuple.dict.set.字符串,dict比较特殊dict的存储不是连续的,所以迭代(遍历)出来的值的顺序也会发生变化. 迭代(遍历) #!/usr/bin/env python3 #-*- coding:utf-8 -*- vlist=['a','b','c'] vtuple=('a','b','c') vdict={'a': 1, 'b': 2, 'c': 3} vset={'a','b','c'} vstr='abc' for x in vl
-
Python增量循环删除MySQL表数据的方法
需求场景: 有一业务数据库,使用MySQL 5.5版本,每天会写入大量数据,需要不定期将多表中"指定时期前"的数据进行删除,在SQL SERVER中很容易实现,写几个WHILE循环就搞定,虽然MySQL中也存在类似功能,怎奈自己不精通,于是采用Python来实现 话不多少,上脚本: # coding: utf-8 import MySQLdb import time # delete config DELETE_DATETIME = '2016-08-31 23:59:59' DELE
-
Python while 循环使用的简单实例
while循环是在Python中的循环结构之一. while循环继续,直到表达式变为假.表达的是一个逻辑表达式,必须返回一个true或false值,本文章向码农介绍Python while 循环使用方法,需要的朋友可以看一下本文章. 一个循环是一个结构,导致第一个程序要重复一定次数.重复不断循环的条件仍是如此.当条件变为假,循环结束和程序的控制传递给后面的语句循环. while循环: while循环是在Python中的循环结构之一. while循环继续,直到表达式变为假.表达的是一个逻辑表达式,
-
浅析Python中的赋值和深浅拷贝
python中,A object = B object 是一种赋值操作,赋的值不是一个对象在内存中的空间,而只是这个对象在内存中的位置 . 此时当B对象里面的内容发生更改的时候,A对象也自然而然的会跟着更改. name = ["root","admin"] cp_name = name # 对cp_name进行赋值操作 # 对name列表进行插入 name.append('root_temp') print(name,cp_name) # ['root', 'a
-
python中将函数赋值给变量时需要注意的一些问题
前言 本文主要给大家介绍的是关于python将函数赋值给变量时需要注意的一些问题,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 见过两种函数赋值给变量的形式,一种是 a=f 另一种是 a=f() 这两种形式是有区别的,分别总结一下. 1.a=f型属于将变量指向函数. 用代码验证一下: >>> f = abs >>> f(-10) 10 说明变量f现在已经指向了abs函数本身.直接调用abs()函数和调用变量f()完全相同.这是廖雪峰老师python教程
-
Python减少循环层次和缩进的技巧分析
本文实例分析了Python减少循环层次和缩进的技巧.分享给大家供大家参考,具体如下: 我们知道Python中冒号和缩进代表大括号,这样写已经可以节省很多代码行数,但是可以更优化,尽可能减少循环的层次和缩进,让代码看起来更简洁,逻辑更清楚.不仅Python语言如此,其他语言也一样. 如图,是两段Python代码,前后两段要实现的功能是一样的,但是第二段明显可读性更好,逻辑更佳清晰.在很多循环嵌套的时候,其实可以用"逆向思维",用continue跳出不符合条件的循环,而不是成立的时候继续执
随机推荐
- 利用js实现在浏览器状态栏显示访问者在本页停留的时间
- 轻轻绕过你的验证码并进行攻击
- C++基础知识总结
- js控制表单操作的常用代码小结
- jsp和asp.net共享session值示例代码
- C# WORD操作实现代码
- php cookie的操作实现代码(登录)
- thinkphp实现把数据库中的列的值存到下拉框中的方法
- Eclipse下jQuery文件报错出现错误提示红叉
- C#中验证sql语句是否正确(不执行语句)
- 完美解决mysql启动后随即关闭的问题(ibdata1文件损坏导致)
- cookie中的path与domain属性详解
- 微信小程序实现跟随菜单效果和循环嵌套加载数据
- C#文件流读写和进度回调示例详解
- 对pandas的算术运算和数据对齐实例详解
- Python实现查询某个目录下修改时间最新的文件示例
- Python定时任务APScheduler的实例实例详解
- Python queue队列原理与应用案例分析
- 使用SpringSecurity处理CSRF攻击的方法步骤
- 浅谈docker-compose网络设置之networks