我如何遍历由逗号分隔的字符串中的每个条目,并使用 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