Страницы

Добро пожаловать

< Выберите раздел для просмотра

пятница, 19 августа 2016 г.

Python в ArcGIS. Классификация с помощью словаря. 19

    Когда в скрипте необходимо создать переменную в зависимости от значения другой переменной обычно используют конструкции if / elif / else. На информатике подобное называют множественным ветвлением. Например:

"""
population = 437000
x = population
if  x > 5000000:
    city_id = 1
elif  x < 5000000 and x >= 3000000:
    city_id = 2
elif  x < 5000000 and x >= 3000000:
    city_id = 2
elif  x < 3000000 and x >= 1000000:
    city_id = 3
elif  x < 1000000 and x >= 500000:
    city_id = 4
elif  x < 500000 and x >= 250000:
    city_id = 5
elif  x < 250000 and x >= 100000:
    city_id = 6
elif  x < 100000 and x >= 10000:
    city_id = 7
elif  x < 10000:
    city_id = 8
else:
    print 'error'

"""
    В случае когда входное значение может принадлежать всей шкале, без специальных исключений, удобно использовать словарь, в котором ключи будут вычисляться. Конструкция выглядит наглядней, её легче читать и править:

"""
population = 437000
x = population
city_id = {
    x > 5000000: 1,
    x < 5000000 and x >= 3000000: 2,
    x < 3000000 and x >= 1000000: 3,
    x < 1000000 and x >= 500000: 4,
    x < 500000 and x >= 250000: 5,
    x < 250000 and x >= 100000: 6,
    x < 100000 and x >= 10000: 7,
    x < 10000: 8
}[True]
"""

Комментариев нет:

Отправить комментарий