我正在用foreach循环迭代一个列表,我想对我迭代的x
中的一个做一些额外的事情(特别是下面代码中的cryoTemp
)。我可以在循环体中使用一个简单的if
语句来添加此功能,但它会在我的脑海中引发一个潜意识的“坏代码”警报,因为if
语句在每次迭代时都会被求值,即使它只会求值一次为true。有没有一个更聪明,也许更“Python”的方式来做到这一点?你知道吗
for p in self.params:
< get parameter p from server >
< parse response >
log_in_redis_and_mysql(p, value)
# log cooling rate based on cryoTemp value
if p == 'cryoTemp':
self.pastCryoTemps.append(value)
# calculate average of queue when it fills up then remove the oldest (first) element
if (len(self.pastCryoTemps) == 4):
differences = []
for i in range(len(self.pastCryoTemps) - 1):
differences.append(-(self.pastCryoTemps[i] - self.pastCryoTemps[i + 1]))
average = sum(differences) / len(differences)
log_in_redis_and_mysql('cooling_rate', average)
self.pastCryoTemps.pop(0)
如果知道哪个索引具有特殊cased行为,可以执行以下操作:
如果不这样做,那么简单地对照谓词检查每个
x
也没有什么错。你知道吗相关问题 更多 >
编程相关推荐