Есть ли простой способ написать это на Python? - PullRequest
2 голосов
/ 15 июля 2011
        if(i-words < 0):
            start_point = 0
        else:
            start_point = i - words

Или это самый простой способ использования мин / макс?Это для объединения списков.

Я хочу, чтобы начальная точка всегда была 0 или выше.

Ответы [ 2 ]

10 голосов
/ 15 июля 2011

Лучше сделать ограничение более очевидным

start_point = max(i - words, 0)

Таким образом, любой читающий может увидеть, что вы ограничиваете значение.недостаток в том, что вы вычисляете дважды i - words.Использование временного кода для этого приведет к увеличению объема кода.

Итак, используйте max и min в этих случаях.

1 голос
/ 15 июля 2011

Как насчет

start_point = 0 if i - words < 0 else i - words

или

start_point = i - words if i - words < 0 else 0

или даже лучше, самый ясный способ:

start_point = max(i - words, 0)

Как говорит Михай в своем комментарии, последний способ не только понятнее для чтения и записи, но и оценивает значение только один раз, что может быть важно, если это вызов функции.

...