我如何遍历由逗号分隔的字符串中的每个条目,并使用 Python 将其作为单独的输入包含在内
How do i loop through each entry in a string delimited by a comma and include it as a separate input using Python
我有一个名为 listnumber
的字符串
listnumbers
'1.0,2.0,3.0,4.0,5.0,6.0'
我有一个函数 returns 该字符串的每个值
def myfun(lists):
return ','.join([i for i in lists.split(',')])
当我输入函数时
myfun(listnumbers)
'1.0,2.0,3.0,4.0,5.0,6.0'
我有一个循环脚本
aprx = arcpy.mp.ArcGISProject("CURRENT")
m = aprx.listMaps("Map")[0]
for lyr in m.listLayers("OMAP_PCT_POP_ACS17"):
if lyr.supports("DEFINITIONQUERY"):
lyr.definitionQuery="Value=" ""+myfun(listnumbers)+""
我最终得到
Value=1.0,2.0,3.0,4.0,5.0,6.0
我真正想要的是循环并给我
Value=1.0
Value=2.0
Value=3.0
等等……作为单独的条目。我觉得我已经很接近了,我只需要做一些改变。
与其将字符串重新连接在一起,不如将其分开:
def myfun(lists):
return [i for i in lists.split(',')]
然后,在您的循环中,您应该遍历 myfun
:
返回的列表的值
aprx = arcpy.mp.ArcGISProject("CURRENT")
m = aprx.listMaps("Map")[0]
for lyr in m.listLayers("OMAP_PCT_POP_ACS17"):
if lyr.supports("DEFINITIONQUERY"):
for value in myfun(listnumbers):
lyr.definitionQuery = "Value=" + value
但是,str.split
已经完成了此改进 myfun
所做的事情,因为它已经 returns 了一个列表。因此,您可以进一步简化并完全摆脱 myfun
:
aprx = arcpy.mp.ArcGISProject("CURRENT")
m = aprx.listMaps("Map")[0]
for lyr in m.listLayers("OMAP_PCT_POP_ACS17"):
if lyr.supports("DEFINITIONQUERY"):
for value in listnumbers.split(','):
lyr.definitionQuery = "Value=" + value
我有一个名为 listnumber
的字符串listnumbers
'1.0,2.0,3.0,4.0,5.0,6.0'
我有一个函数 returns 该字符串的每个值
def myfun(lists):
return ','.join([i for i in lists.split(',')])
当我输入函数时
myfun(listnumbers)
'1.0,2.0,3.0,4.0,5.0,6.0'
我有一个循环脚本
aprx = arcpy.mp.ArcGISProject("CURRENT")
m = aprx.listMaps("Map")[0]
for lyr in m.listLayers("OMAP_PCT_POP_ACS17"):
if lyr.supports("DEFINITIONQUERY"):
lyr.definitionQuery="Value=" ""+myfun(listnumbers)+""
我最终得到
Value=1.0,2.0,3.0,4.0,5.0,6.0
我真正想要的是循环并给我
Value=1.0
Value=2.0
Value=3.0
等等……作为单独的条目。我觉得我已经很接近了,我只需要做一些改变。
与其将字符串重新连接在一起,不如将其分开:
def myfun(lists):
return [i for i in lists.split(',')]
然后,在您的循环中,您应该遍历 myfun
:
aprx = arcpy.mp.ArcGISProject("CURRENT")
m = aprx.listMaps("Map")[0]
for lyr in m.listLayers("OMAP_PCT_POP_ACS17"):
if lyr.supports("DEFINITIONQUERY"):
for value in myfun(listnumbers):
lyr.definitionQuery = "Value=" + value
但是,str.split
已经完成了此改进 myfun
所做的事情,因为它已经 returns 了一个列表。因此,您可以进一步简化并完全摆脱 myfun
:
aprx = arcpy.mp.ArcGISProject("CURRENT")
m = aprx.listMaps("Map")[0]
for lyr in m.listLayers("OMAP_PCT_POP_ACS17"):
if lyr.supports("DEFINITIONQUERY"):
for value in listnumbers.split(','):
lyr.definitionQuery = "Value=" + value