0
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

还是有另一种方法可以一次访问两个元素?

4

1 回答 1

1

在您的enumerate函数中,i表示列表元素的索引位置,并d表示存在于第ith 索引位置的元素的值。所以,当你在做的时候d[i+1],你是在切片d变量。

当 的值i等于块中datavariable的最后一个元素时enumerate,访问第i+1th 元素data i.e., data[i+1]会抛出索引错误(因为i+1第 th 元素在 中不存在data)。由于您想同时使用ii+1元素,enumerate因此单独使用可能无法完全解决问题。如果您热衷于使用它,则必须将代码更改为

for i,d in enumerate(data):
    if i < (len(data) - 1):
        print d + ' ' + data[i+1]
于 2013-07-15T08:43:48.513 回答