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
为什么上述情况发生?不应该在两个循环之间保存这个值,无论如何要修复它?如果重要,元组是一个类属性。
答案 0 :(得分:1)
row
是元组实际元素的“副本”。因此,您所做的任何更改都不会影响原始元组。 (您可以通过打印id
来测试)
你能做什么?
你可以循环索引:
for i in range(len(tuple)):
storyLen = len(tuple[i][5])
tuple[i] += (storyLen,)
这样做是因为你直接访问元组的元素。
注意:不要使用tuple
作为变量的名称,因为它会隐藏Python tuple
类型的内置实现。