add = lambda x,y : x+y
list1 = [1,2,3,4,5]
count = 0
for num1 in list1:
if count > len(list1):
break
else:
print(add(num1,list1[count+1]))
count += 1
在上面的代码中,为什么for
循环没有因为超出条件而中断?
答案 0 :(得分:2)
实际上,您不需要break
语句(也不需要 lambda表达式)。您可以将代码写为:
list1 = [1,2,3,4,5]
for i in range(len(list1)-1):
print list1[i] + list1[i+1]
在这里使用zip
更好:
for a, b in zip(list1, list[1:]):
print a+b
答案 1 :(得分:1)
for
循环在list1
中每个元素执行一次,因此count
永远不会大于该列表的长度。
答案 2 :(得分:0)
我想留下代码,更改if语句:
if count >= len(list1) - 1:
并且在用完
中列表的边界之前会中断print(add(num1,list1[count+1]))
答案 3 :(得分:0)
错误在这一行:
print(add(num1,list1[count+1]))
当你使用count + 1时,你会陷入一个超出范围的索引。
为了保持逻辑,您应该使用count + 1 >= len(list1)
for num1 in list1:
if count + 1 >= len(list1):
break
else:
print(add(num1,list1[count + 1]))
count += 1