在给定的代码中,是否可以将带有if条件的for循环转换为列表
ListIndex = 0
timeSeries = []
Value = defaultValue
dfLength = len(dfCont.index)
for i in range(dfLength):
if abs(dfCont.iloc[i, 0] - occurance[ListIndex]) < 0.0001:
Value = discreteValues[ListIndex]
ListIndex = ListIndex + 1
timeSeries.append(Value)
我尝试使用标准定义将这个for循环压缩到列表理解中,但它似乎不起作用。是否有可能首先将这个for循环转换为列表理解?如果是,最好的方法是什么
不,我不相信您可以将其表示为一个列表理解(至少,在理解/调试时会变得非常糟糕)
关键的部分是,您正在更新某些迭代中的
Value
和ListIndex
,并且需要这些更新的值保存到未来的迭代中。列表理解并不是这样工作的,因为它们是用来替换map()
函数的。基本形式是:您的输出是一个
f(x)
返回值列表,它不能依赖于传入的x
的早期值,除非f
保持全局状态(这是总的;不要这样做)我认为您不需要
ListIndex
变量,因为您可以从enumerate
获取它相关问题 更多 >
编程相关推荐