python - 我可以设置一个 python while 循环运行直到没有任何变化吗?

标签 python loops while-loop arcgis

我在 ArcGIS 中编写了一个 python 脚本,用于选择相交的要素。它需要不断重复,直到选择所有相关特征。此时选择将停止更改。是否可以设置一个循环不断重复,直到所选特征的数量与上次循环相同?我可以使用 arcpy.GetCount_management() 方法获取选定的功能。

我已将所选功能的数量设置为变量:

selectCount = arcpy.GetCount_management("StreamT_StreamO1")

那么这就是

mylist = []
with arcpy.da.SearchCursor("antiRivStart","ORIG_FID") as mycursor:
    for feat in mycursor:
        mylist.append(feat[0])
        liststring = str(mylist)
        queryIn1 = liststring.replace('[','(')
        queryIn2 = queryIn1.replace(']',')')

arcpy.SelectLayerByAttribute_management('StreamT_StreamO1',"ADD_TO_SELECTION",'OBJECTID IN '+ queryIn2 )

arcpy.SelectLayerByLocation_management("antiRivStart","INTERSECT","StreamT_StreamO1","","ADD_TO_SELECTION")

所以我想做的实际上是:

while selectcount == previousselectcount:
        do stuff

但我不知道 while 循环应该如何构建

最佳答案

您非常接近如何监控功能数量的变化。考虑以下。

previousselectcount = -1
selectcount = arcpy.GetCount_management("StreamT_StreamO1")
while selectcount != previousselectcount:
        do stuff
        # update both counts at the end of what you want to do in the while loop
        previousselectcount = selectcount
        selectcount = arcpy.GetCount_management("StreamT_StreamO1")

注意 while 循环条件中的不等于运算符 (!=)。

关于python - 我可以设置一个 python while 循环运行直到没有任何变化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33219424/

相关文章:

python - 为什么我的网络抓取工具只能工作一半的时间?

C - 在 vector 中输入数字 0 时中断 while 循环

While 循环参数内的逗号

javascript - 二十一点 javascript 游戏无限循环

php - 嵌套 while 循环不适用于我的 GROUP BY 查询

python - 将抓取 URL 从一个蜘蛛传递到另一个蜘蛛

python - 为什么 numpy 从相同的随机状态返回不同的随机数?

python - 人性化 django-tables2 输出?

php - 在 php 中为 css 进度条编写一个简单的 for 循环

带有负数的 Javascript for 循环