首页 > 解决方案 > Python - 更改列表项的值

问题描述

我的代码如下,带有注释。它运行良好,直到改变列表项的值,即 data[x][y] = something。

Tdata = cursor.fetchall() #Get data from MYSQL database
data = list(Tdata) #Convert into list...not sure if absolutely required
APIData = APIDataList()
MPLlat = 0.0
MPLLon = 0.0
RadiusOI = 15

for i in (range(0,len(data))):
    MPLCount = 0
    MPLlat = data[i][2]
    MPLLon = data[i][3]
    MPLCount = CountofbikesnearMPL(MPLlat, MPLLon, RadiusOI)
    if MPLCount>0:
        data[i][4] = MPLCount #ERROR: here is where the error is kicking in. 
                              #get error "tuple' object does not support 
                              #item assignment"

我真的无法弄清楚为什么会发生这种情况并尝试使用谷歌搜索但没有成功。任何帮助将不胜感激。

提前致谢。C

标签: pythonarrayserror-handling

解决方案


cursor.fetchall() 返回一个元组列表

这意味着data[i]它将是 a tuple,根据定义,它是不可变的。如果你想修改data[i],你需要把你的元组变成列表

data = [list(row) for row in Tdata]

或通过元组连接替换整行

data[i] = data[i][:4] + (MPLCount,) + data[i][5:]

推荐阅读