我如何在循环中来回走动?
How do I go back and forth in a loop?
所以我在这些索引 1 2 3 4 5 6 7 8 9 10 处有一个项目序列。我需要首先添加中间两个元素:
output = i[5]+i[6]
并且对于下一次迭代,输出必须先添加左元素,然后添加右元素。
output = output + i[4]
下一步,
output = output + i[7]
我不知道如何在循环或任何其他结构中做到这一点。任何人都可以向我推荐任何东西吗?我正在使用 python,但我只需要伪代码。
这里的共同点是两个下标的和必须为11。
output = 0
for left in range(5, 0, -1):
right = 11 - left
output += i[left]
output += i[right]
我把解决方案留得比必要的时间长,因为你似乎还有其他步骤。
newlist=[1,2,3,4,5,6,7,8,9,10]
while(len(newlist)>0):
lengthi=(len(newlist)//2)-1
lengthj=(len(newlist)//2)
sum=(newlist[lengthi]+newlist[lengthj])
del newlist[lengthi:(lengthj)+1]
print(sum)
这适用于我已经尝试过的列表,但是这会根据您的列表的长度而改变。这适用于偶数,如果长度发生变化,代码会给出错误,因为末尾会有一个不匹配的元素。您也可以通过不删除列表来执行此操作,方法是将变量复制到另一个变量中,然后从中删除变量可能更好。
为了在每次迭代中从左侧或右侧获取一个元素,我会在 list
.[=17= 上结合使用 while
语句和 pop()
]
代码:
l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
total = 0
while len(l):
total += l.pop(len(l) // 2)
输出:
print(total)
55
total
级数是:
0 + 6 = 6
6 + 5 = 11
11 + 7 = 18
18 + 4 = 22
22 + 8 = 30
30 + 3 = 33
33 + 9 = 42
42 + 2 = 44
44 + 10 = 54
54 + 1 = 55
好吧,您可以从列表的中间开始,然后随着您的前进,将左右元素加在一起。
m = len(a)//2 # middle of the list
output = 0
for i in range(m):
output += a[m-i-1] + a[m+i]
我相信列表的长度是偶数。虽然奇数长度不会有问题,只是列表的最后一个元素将被忽略。
所以我在这些索引 1 2 3 4 5 6 7 8 9 10 处有一个项目序列。我需要首先添加中间两个元素:
output = i[5]+i[6]
并且对于下一次迭代,输出必须先添加左元素,然后添加右元素。
output = output + i[4]
下一步,
output = output + i[7]
我不知道如何在循环或任何其他结构中做到这一点。任何人都可以向我推荐任何东西吗?我正在使用 python,但我只需要伪代码。
这里的共同点是两个下标的和必须为11。
output = 0
for left in range(5, 0, -1):
right = 11 - left
output += i[left]
output += i[right]
我把解决方案留得比必要的时间长,因为你似乎还有其他步骤。
newlist=[1,2,3,4,5,6,7,8,9,10]
while(len(newlist)>0):
lengthi=(len(newlist)//2)-1
lengthj=(len(newlist)//2)
sum=(newlist[lengthi]+newlist[lengthj])
del newlist[lengthi:(lengthj)+1]
print(sum)
这适用于我已经尝试过的列表,但是这会根据您的列表的长度而改变。这适用于偶数,如果长度发生变化,代码会给出错误,因为末尾会有一个不匹配的元素。您也可以通过不删除列表来执行此操作,方法是将变量复制到另一个变量中,然后从中删除变量可能更好。
为了在每次迭代中从左侧或右侧获取一个元素,我会在 list
.[=17= 上结合使用 while
语句和 pop()
]
代码:
l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
total = 0
while len(l):
total += l.pop(len(l) // 2)
输出:
print(total)
55
total
级数是:
0 + 6 = 6
6 + 5 = 11
11 + 7 = 18
18 + 4 = 22
22 + 8 = 30
30 + 3 = 33
33 + 9 = 42
42 + 2 = 44
44 + 10 = 54
54 + 1 = 55
好吧,您可以从列表的中间开始,然后随着您的前进,将左右元素加在一起。
m = len(a)//2 # middle of the list
output = 0
for i in range(m):
output += a[m-i-1] + a[m+i]
我相信列表的长度是偶数。虽然奇数长度不会有问题,只是列表的最后一个元素将被忽略。