Петли в Python похожи на Matlab? - PullRequest
2 голосов
/ 24 января 2012

Я новичок в использовании Python - Arcmap.

У меня на карте есть список слоев с почти одинаковым именем (от 3 до 5)

Я хочу рассчитать MinimumBoundingGeometry_management.Я узнал, как сделать это для одного слоя.

arcpy.MinimumBoundingGeometry_management("bound3","bound3ConvexHull","CONVEX_HULL","ALL")

Вместо этого я хотел бы создать цикл, как в стиле Matlab:

for i=3:1:50 arcpy.MinimumBoundingGeometry_management(boundi,boundiConvexHull,... "CONVEX_HULL","ALL") end

Может кто-нибудь дать мне подсказку!

Большое спасибо

1 Ответ

3 голосов
/ 24 января 2012

Вы просто должны построить строки "boundi" и "boundiConvexHull" для каждого i.

Вместо 3:50 (в Matlab) вы делаете xrange(3,51) в python. Причина, по которой вы переходите к 51, заключается в том, что xrange(n) генерирует последовательность 0:(n-1) (python основан на 0, тогда как matlab основан на 1).

for i in xrange(3,51):
    arcpy.MinimumBoundingGeometry_management("bound%i" % i, "bound%iConvexHull" % i, ... )

Я использовал форматирование строк в Python: "bound%i" % i - это синтаксический сахар для функций типа printf, с которыми вы знакомы в matlab.

Полезные ссылки:

...