python - 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
解决方案
cursor.fetchall()
返回一个元组列表。
这意味着data[i]
它将是 a tuple
,根据定义,它是不可变的。如果你想修改data[i]
,你需要把你的元组变成列表
data = [list(row) for row in Tdata]
或通过元组连接替换整行
data[i] = data[i][:4] + (MPLCount,) + data[i][5:]
推荐阅读
- python - 使用 with open 缓存来自 Web API 的结果
- android - 对 getSignInResultFromIntent 的未解决引用
- windows - Docker + Windows + Prometheus:如何/在哪里提供配置文件
- php - PHP stream_socket_enable_crypto() 返回 FALSE 的原因?
- uwp - 桌面扩展:在后台运行还是关闭?
- python - python中dict.clear()的时间复杂度是O(1)如何?
- laravel - laravel 5.7 中的服务层
- php - 如何为不同目录中的相似表单设置 CodeIgniter 控制器
- indexing - 当您有 2 个值时如何使用索引匹配?
- go - 对这些 golang 并发问题感到困惑