通过“ for”循环(即“ for x in list:”)访问列表时,有没有办法在同一循环中访问列表中的“ x + 1”项目?

时间:2019-09-08 17:35:07

标签: python list loops

通过for循环(即for x in list:)访问列表时,有没有办法在同一循环中访问列表中的x+1项目?

例如,

list = [1 ,2 ,3 ,4]

有某种方法可以像

那样添加1 + 2、2 + 3、3 + 4
for x in list:
    print(x+(x+1))

2 个答案:

答案 0 :(得分:0)

您可以按索引而不是值进行循环,并确保在倒数第二个索引处停止,以避免在访问下一个索引时出现IndexError: list index out of range异常:

l = [1 ,2 ,3 ,4]

for i in range(len(l) - 1):
    print(l[i] + l[i + 1])

不过,有些Pythonic的用法是将列表本身本身向右移zip

l = [1 ,2 ,3 ,4]

for i, j in zip(l, l[1:]):
    print(i + j)

PS :避免使用内置类型list作为变量名。

答案 1 :(得分:0)

您有多个选择。

一种是使用enumarate()

for counter, x in enumerate(a_list):
    print(str(x+a_list[counter+1]))

将在上一次迭代中抛出IndexError,因此您也必须处理这种情况。