元组的新值未保存在foreach循环外

2024-09-28 05:26:17 发布

您现在位置:Python中文网/ 问答频道 /正文

for row in tuple:
    print row[6] # Error: tuple index out of range
    storyLen = len(row[5])
    row = row + (storyLen, )
    print row[6] # No Error as it's added
    # Leave loop now

for newRow in tuple:
    print newRow[6] # Error: tuple index out of range

为什么会出现上述情况?这个值不应该保存在两个循环之间吗?还有其他方法可以修复它吗?如果重要的话,元组是一个类属性。你知道吗


Tags: ofnoinforindexlenasrange
1条回答
网友
1楼 · 发布于 2024-09-28 05:26:17

所发生的是row是元组的实际元素的“副本”。因此,所做的任何更改都不会影响原始元组。(您可以通过打印id来测试这一点)

你能做什么?

可以循环索引:

for i in range(len(tuple)):
    storyLen = len(tuple[i][5])
    tuple[i] += (storyLen,)

这将起作用,因为您直接访问元组的元素。你知道吗

注意:不要使用tuple作为变量名,因为它将隐藏Python的tuple类型的内置实现。你知道吗

相关问题 更多 >

    热门问题