Python for 循环内的异常处理

标签 python

我是 Python 和一般编程新手。虽然我认为这个问题可能与我使用异常处理有关,但也可能是由于普遍缺乏理解!

for i in range(0, len(dates)):
    try:
        data.append(WUF.getwx(location[j], dates[i])[1])
        continue
    except xml.etree.ElementTree.ParseError:
        #copy last good row of data and use it for the missing day
        fixdata = data[-1] #[1,2,3,4,5,6,7,8,9,10,11]
        fixdata[10] = 'estimated'
        data.append(fixdata)

当我按照编写的方式运行代码时,我在 data 中得到 2 行“估计”行。一个用于前一个日期,一个用于估计的日期。如果我将 fixdata 变量更改为 [1, 2, 3, 4, 5, ...],则只有一行(预计日期的预期行)是“估计”。

知道我在这里缺少什么吗?谢谢!

最佳答案

问题所在:

fixdata = data[-1]

这实际上并不复制数据,它仅复制数据的引用fixdata 最终指向列表中的原始元素,因此当您这样做时

fixdata[10] = 'estimated'

它改变了原始数据。

要实际复制数据,请尝试以下操作:

fixdata = data[-1][:]

[:] 复制整个列表,我认为这就是您想要做的。

关于Python for 循环内的异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8933669/

相关文章:

Python 和 curl 问题

python - 来自C,我应该如何学习Python?

python - 列中的多个分类变量和准备

python - 如何计算跨列列表中元素的平均值?

python - 使用 Python 中另一列的值基于多个条件在 DataFrame 中创建新列

python - 尽管指定编码 = 'utf-8',但使用 to_csv 时出现 Unicode 错误

python - iPython notebook - 在子图次要 y 轴上设置 ylim

python - 使用编号在 python 中列表理解

python - 尝试绘图时 python 中的语法无效

python - 用于图像缩放的双三次插值