我最近才开始用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]
答案 0 :(得分:6)
((5, 1, 9, 23),)
,那么这是一个长度为1的元组。它唯一的元素 - 索引为0 - 是元组(5, 1, 9, 23)
。索引1
没有第二个元素,因此that_tuple[1]
会引发IndexError
。
你希望previous[1]
给你什么?
答案 1 :(得分:0)
“previous
”中只有一个元素。这就是您在尝试检索元素1时获得IndexError
的原因。
答案 2 :(得分:0)
您的索引错误来自previous[1]
- 之前是1元组...您需要previous[0]
和previous[0][0]
。