Предположим, у меня есть этот список:

common_list = ['Potato', 'Tomato', 'Carrot']

Я хочу проверить, существует ли common_list[3]; если нет, я хочу что-то добавить к этому. Вот что я пробовал:

if common_list[2] and not common_list[3]:
    common_list.insert(3, 'Lemon')

Но это дает мне ошибку:

IndexError: list index out of range
1
Dariiu 11 Окт 2021 в 21:18

2 ответа

Лучший ответ

Это зависит от того, какую именно проверку вы хотите провести. Вот несколько возможностей.

Проверьте, есть ли ровно три пункта:

if len(common_list) == 3:
    common_list.append('Lemon')

Убедитесь, что меньше четырех пунктов:

if len(common_list) < 4:
    common_list.append('Lemon')

Убедитесь, что четвертого элемента нет или что четвертый элемент присутствует, но установлен на None:

if len(common_list) < 4 or common_list[4] is None:
    common_list.append('Lemon')

Убедитесь, что в списке еще нет 'Lemon':

if 'Lemon' not in common_list:
    common_list.append('Lemon')

Не запускайте и не перехватывайте исключения, если их можно избежать с помощью простой проверки if. Это плохой стиль. Исключения обходятся дорого, и их ловить медленно. Старайтесь использовать их только в действительно исключительных обстоятельствах, когда вы удивитесь, если действительно произойдет ошибка.

2
John Kugelman 11 Окт 2021 в 18:39

Может, попробуете метод исключения?

common_list = ['Potato', 'Tomato', 'Carrot']
try:
    common_list[3]
except IndexError:
    common_list.insert(3, 'Lemon')
1
Nurislom Rakhmatullaev 11 Окт 2021 в 18:31