Python 如何在循环中调节列表的元素

Python 如何在循环中调节列表的元素,python,list,loops,Python,List,Loops,如何确保b中的元素不低于0或高于10 也就是说,当列表b中的5减为0时,我如何让程序将其增加回1,然后再增加1 a = [2, 5, 7] b = [] m = True counter = 1 while m == True: for i in a: if i >= 5: i -= counter b.append(i) else: i += counter

如何确保b中的元素不低于0或高于10

也就是说,当列表b中的5减为0时,我如何让程序将其增加回1,然后再增加1

a = [2, 5, 7]
b = []
m = True
counter = 1

while m == True:

    for i in a:

        if i >= 5:
            i -= counter
            b.append(i)
        else:
            i += counter
            b.append(i)

        if len(a) == len(b):
            counter += 1
            print(b)
            b.clear()

        if counter == 15:
            m = False

"""
Current output: 
[2, 5, 7]
[3, 4, 6]
[4, 3, 5]
[5, 2, 4]
[6, 1, 3]
[7, 0, 2]
[8, -1, 1]
[9, -2, 0]
[10, -3, -1]
[11, -4, -2]

Expected output:
[2, 5, 7]
[3, 4, 6]
[4, 3, 5]
[5, 2, 4]
[6, 1, 3]
[7, 0, 2]
[8, 1, 1]
[9, 2, 0]
[10, 3, 1]
[9, 4, 2]
"""

我不确定我是否完全遵循了您所追求的,但下面是一种获得预期输出的方法(我没有遵循您在while循环中尝试执行的操作,所以我只是根据您的最大计数器值将其循环了15次-但您可以对外部循环执行其他操作)


如您所说,尝试使用模数运算符%:编写一个
if
语句来检查
i
;如果达到0,则将计数器重置为1并立即递增。你在哪里写代码?你试过什么?@Prune嗨,谢谢你的回复。我认为修补计数器也会影响其他元素的增量。我尝试用列表b替换列表a,如果任何元素+计数器==10或0,则将计数器重置为0。这使得我最初设置的条件必须再次满足,但是使用列表a中列表b中的元素。抱歉,如果这有点混乱!是的,这让人困惑——因为你没有告诉我们程序应该做什么。请参阅您创建此帐户时建议的过帐准则,在这里申请。除此之外,我们期望当前和预期的输出。代码应该做什么@mke?输出列表的结构是什么?它与输入列表的关系如何?
numbers = [2, 5, 7]
switches = [True, False, False]
output = list()

for _ in range(15):
    for i, number in enumerate(numbers):
        # keep numbers between 0 and 10
        if number == 0:
            switches[i] = True
        elif number == 10:
            switches[i] = False

        # increment or decrement number based on corresponding "switch"    
        if switches[i]:
            number += 1
            output.append(number)
        else:
            number -= 1
            output.append(number)

        # print and reset
        if len(output) == len(numbers):
            numbers = output
            output = list()
            print(numbers)

# OUTPUT
# [3, 4, 6]
# [4, 3, 5]
# [5, 2, 4]
# [6, 1, 3]
# [7, 0, 2]
# [8, 1, 1]
# [9, 2, 0]
# [10, 3, 1]
# [9, 4, 2]
# [8, 5, 3]
# [7, 6, 4]
# [6, 7, 5]
# [5, 8, 6]
# [4, 9, 7]
# [3, 10, 8]