我正在尝试使用arcpy
将list
坐标添加到shapefile
,我正在使用此代码:
with open("pathtomyfile") as f1:
for line in f1:
str = line.split()
mylist.append(str)
fc = "pathtomyshapefile"
cursor = arcpy.da.InsertCursor(fc, ["SHAPE@XY"])
for row in mylist:
cursor.insertRow(row)
del cursor
但是我遇到了一个错误:
TypeError: sequence size must match size of the row
我意识到这是由我的列表看起来像:
[['1.222', '3.3333'],['333.444', '4444.5555']]
而不是
[[1.222, 3.3333],[3.4444, 4.55555]]
但我不知道如何解决它。有什么帮助吗?
答案 0 :(得分:2)
所以如果你有list
:
l = [['1.222', '3.3333'],['333.444', '4444.5555']]
然后您要做的是将每个元素转换为float
,这可以通过以下方式完成:
[[float(i) for i in j] for j in l]
outputs
新list
内容:
[[1.222, 3.3333], [333.444, 4444.5555]]
经过进一步检查,您似乎真的想要output
:
[[1.222, 3.3333],[3.4444, 4.55555]]
在这种情况下,你可以简单地做:
[[float(i[i.index('.')-1:]) for i in j] for j in l]
或者:
[[float(i) % 10 for i in j] for j in l]
但由于Python处理它们的方式,第二个选项导致稍微关闭floats
:
[[1.222, 3.3333], [3.444000000000017, 4.555500000000393]]