Не могу понять синтаксис решения

Есть вот такая задача: Банкоматы позволяют использовать 4- или 6-значные PIN-коды, а PIN-коды не могут содержать ничего, кроме ровно 4 или ровно 6 цифр. Если функции передана допустимая строка PIN-кода, верните true, иначе верните false. Вот решение:

def validate_pin(pin):
    return len(pin) in [4, 6] and pin.isdigit()

Не могу понять список [4,6], он же включает 5, а получается что не включает, как так? Где можно посмотреть описание синтаксиса вышеуказанного выражения?


Ответы (1 шт):

Автор решения: CameL

Список [4, 6] включает только два элемента 4 и 6

Все элементы на промежутке включает срез, он пишется через двоеточие [4 : 6]

a = [4,6]
b = [0, 1, 2, 3, 4, 5, 6]
print(a)  # [4,6]
print(b[4:7])  # [4,5,6]
→ Ссылка