Python If Условие с двумя условиями, зависящими от кортежа - PullRequest
0 голосов
/ 01 сентября 2011

Я только недавно начал программировать на Python (с предыдущим опытом работы с Ruby).Я пытаюсь настроить условие if с двумя условиями:

if not previous[1] and previous[0][0] == 5:
            print "hello world"

Тем не менее, я получаю эту ошибку:

<type 'exceptions.IndexError'>: tuple index out of range 

Печать предыдущих результатов: ((5, 1, 9, 23),)

Что я делаю не так?

Я ищу что-то похожее на синтаксис Ruby: unless previous[1]

Ответы [ 3 ]

6 голосов
/ 01 сентября 2011

((5, 1, 9, 23),), тогда это кортеж длины 1.Это единственный элемент - с индексом 0 - это кортеж (5, 1, 9, 23).У него нет второго элемента с индексом 1, поэтому that_tuple[1] поднимает IndexError.

Что, как вы надеялись, даст previous[1]?

0 голосов
/ 01 сентября 2011

Ваша ошибка индекса исходит от previous[1] - предыдущая - 1-кортеж ... вам нужно previous[0] и previous[0][0].

0 голосов
/ 01 сентября 2011

В 'previous' есть только один элемент. Вот почему вы получаете IndexError при попытке получить элемент 1.

...