You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用UpdateCursor用列表值更新属性表字段?

问题解决:ArcPy UpdateCursor 赋值报错 TypeError

错误原因分析

  • 每次循环都把i重置为0,导致始终只取列表第一个元素
  • updateRow()要求传入序列(比如元组),直接传单个数值不符合参数要求
  • range(1,1423)生成的是1到1422的数值,和1423个要素数量不匹配

修正后的代码

import arcpy

fc = "C:/kdsfdlsjflj/something.shp"
field = "Name"
# 生成1到1423的数值列表,注意range右边界要+1
xlist = list(range(1, 1424))

with arcpy.da.UpdateCursor(fc, field) as cursor:
    # 用enumerate同时获取索引和游标行
    for i, row in enumerate(cursor):
        # 将数值包装成序列,赋值给对应字段位置
        row[0] = xlist[i]
        cursor.updateRow(row)

更简洁的写法

直接用zip把游标和列表配对,不用手动管理索引:

import arcpy

fc = "C:/kdsfdlsjflj/something.shp"
field = "Name"
xlist = list(range(1, 1424))

with arcpy.da.UpdateCursor(fc, field) as cursor:
    # 同时遍历游标行和数值列表
    for row, val in zip(cursor, xlist):
        row[0] = val
        cursor.updateRow(row)

内容的提问来源于stack exchange,提问作者Sara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 08:37:36