2016-10-31 42 views
0

我想迭代的方法(工會)工會與GEOM變量記錄,並把結果給另一個變量(例如:摹變量)。我寫的代碼片段的兩個記錄(geom1,geom2),但不知道如何迭代變量名稱和值。如何在python中迭代變量名併爲其設置值?

import arcpy 
# Spatial reference of input feature class 
SR = arcpy.SpatialReference(4326) 
InFc=r"D:\_GIS\VerticesToLine.gdb\Line" 
output = r"D:\_GIS\VerticesToLine.gdb\test" 
geom = [row[0] for row in arcpy.da.SearchCursor(InFc, ["[email protected]"])] 
geom[0].union(geom[1]) 
g= geom[2].union(geom[0]) 
with arcpy.da.InsertCursor(output, ["[email protected]"]) as cur: 
    cur.insertRow((g,)) 
+0

你可以使用'eval',但是這被認爲是不好的做法。像帕特里克建議的那樣使用列表。 –

回答

1

保留列表而不是解包它。

geom = [row[0] for row in arcpy.da.SearchCursor(InFc, ["[email protected]"])] 
geom[0].union(geom[1]) 
g= geom[2].union(geom[0]) 
with arcpy.da.InsertCursor(output, ["[email protected]"]) as cur: 
for geo in geom: 
    cur.insertRow((g,)) 

你真的想insertRow((g,))三次,或者應該說是geo

如果你想union一起recodrs任意數量的,你可以這樣做:

geom = [row[0] for row in arcpy.da.SearchCursor(InFc, ["[email protected]"])] 
g = geom[0] 
for geo in geom[1:]: 
    g = g.union(geo) 
+0

謝謝帕特里克。我不嘗試,但基本上g應插入到輸出。我有一個超過100條記錄的表格。您的代碼是否可以用於任何記錄計數? – wetland

+0

所以你想把所有的記錄結合在一起? –

+0

@wetland查看我的編輯 –

相關問題