我正在尝试打印存储在'col_1'中的第5个值。当我打印第5个值或使用它时,它给了我这个错误:
Traceback (most recent call last):
File "/home/pi/test_files/test_two.py", line 99, in <module>
print(col_1[5])
IndexError: list index out of range
然而,如果我尝试1,4值,它完全没问题?我有代码将条目放入这些列表中:
def do_query():
connection = sqlite3.connect('test_db.db')
cursor = connection.cursor()
cursor.execute("SELECT PRODUCT,BIN,SIZE,COLOR FROM TESTER_6 ORDER BY CheckNum")
records = cursor.fetchall()
print(records)
for(Product,Bin,Size,Color) in records:
col_1.append(Product)
col_2.append(Bin)
col_4.append(Size)
col_3.append(Color)
connection.commit()
cursor.close()
connection.close()
当我打印'记录'时,有第5个条目。不知何故,它在for循环期间没有进入列表。
为什么我遇到这个问题?
答案 0 :(得分:4)
与大多数语言一样,Python索引从0开始。
如果列表中有五个元素,则调用col_1[5]
将会生成IndexError
。相反,列表中的第五个元素是col_1[4]
。
col_1 = ['a', 'b', 'c', 'd', 'e']
index: 0 1 2 3 4
所以:
>>> col_1[5]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>> col_1[4]
'e'
>>> col_1[0]
'a'
答案 1 :(得分:3)
与大多数语言一样,Python中的列表基于0。所以,即使有5个元素,也没有element[5]
。如果以1开头,则缺少的元素实际上是索引0
>>> range(5)
[0, 1, 2, 3, 4]