data = ['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff', 'ggg', 'hhh', 'iii', 'jjj']
这完全符合我希望它的工作方式。
i = 0
print
for i in range(len(data) - 1):
print data[i] + ' ' + data[i + 1]
以下代码不起作用。有没有办法让它与enumerate
一起使用,或者上述解决方案是最简单/最好的方式?
print
for i, d in enumerate(data):
print d + ' ' + d[i + 1] # IndexError: string index out of range
或者是否有另一种方法可以一次访问两个元素?
答案 0 :(得分:1)
在enumerate
函数中,i
表示列表元素的索引位置,d
表示i
索引位置的元素值。因此,当您执行d[i+1]
时,您正在切换d
变量。
当i
的值等于data
块中enumerate
变量的最后一个元素时,访问i+1
中的data i.e., data[i+1]
元素会抛出一个索引错误(因为i+1
中不存在data
元素。既然,您希望同时使用i
和i+1
元素,单独使用enumerate
可能无法完全解决问题。如果您热衷于使用它,则必须将代码更改为
for i,d in enumerate(data):
if i < (len(data) - 1):
print d + ' ' + data[i+1]