我的代码
for i in l:
print (("ALTER TABLE jul ADD COLUMN %i VARCHAR(256);") %(l[i]))
我的清单
l=[1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016]
What I got in Jupyter
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-11-6f78605f79c5> in <module>()
1 for i in l:
----> 2 print (("ALTER TABLE jul ADD COLUMN %i VARCHAR(256);") %(l[i]))
IndexError: list index out of range
答案 0 :(得分:4)
当你这样做时:
for i in l
i
已经是您的元素,而不是您的索引。 (另外,字符串周围或i
周围不需要括号。)
所以简单地做
for i in l:
print ("ALTER TABLE jul ADD COLUMN %i VARCHAR(256);" % i)
答案 1 :(得分:1)
使用
for i in l
i
将获取l
内的值,而不是其索引。 (即i = 1995,然后i = 1996 ...)显然列表l
没有那么多元素
你想要的是:
for i, li in enumerate(l):
print(i,li)
#(0, 1995)
#(1, 1996)
#(2, 1997)
#...
答案 2 :(得分:0)
当你做
时for i in l:
print (("ALTER TABLE jul ADD COLUMN %i VARCHAR(256);") %(l[i]))
i表示列表中的每个元素。所以第一个元素是1995年,你试图做一个[1995],这显然是出局或界限。
使用
for i in range(len(l)):
或
for i, element in enumerate(l):
或直接访问元素i:
for i in l:
print(i)