gpt4 book ai didi

python - 如何使用 while 循环从列表的右端开始

转载 作者:太空狗 更新时间:2023-10-30 02:57:59 25 4
gpt4 key购买 nike

所以我有一个数字列表,我只想在满足条件时递增这些数字。在这种情况下,列表包含数字 0-9。

我想做的是将列表中的 9 更改为 0,如果下一个元素不是 9,则添加一个直到它 = 9。最终它应该是一个零列表。

这是我目前所拥有的:

def increment(self):
i = len(self.number) - 1
while (self.number[i] == 9):
self.number[i] = 0
i -= 1

它将列表编号中的最后一个元素(即 9)更改为 0。但是我不知道如何检查 8 是否 = 9,如果不是,则加 1 直到它是。所有其他数字也是如此。

如何使用 while 循环从列表的最后一个元素开始迭代?

最佳答案

所以你想更改 self.numbers 中最后一个不是 0 的数字:如果它是 9,将其更改为 0;否则将其递增 1。你可以这样做:

def increment(self):
for i, num in enumerate(reversed(self.numbers)):
if num: # that is, if num is not 0
self.numbers[-i - 1] = 0 if num == 9 else num + 1
break # once one number is changed, we stop

演示:

class Demo:
def __init__(self):
self.numbers = list(range(1, 10))

def increment(self):
for i, num in enumerate(reversed(self.numbers)):
if num:
self.numbers[-i - 1] = 0 if num == 9 else num + 1
break

demo = Demo()
for _ in range(5):
print(demo.numbers)
demo.increment()

输出

[1, 2, 3, 4, 5, 6, 7, 8, 9]  # the original list
[1, 2, 3, 4, 5, 6, 7, 8, 0]
[1, 2, 3, 4, 5, 6, 7, 9, 0]
[1, 2, 3, 4, 5, 6, 7, 0, 0]
[1, 2, 3, 4, 5, 6, 8, 0, 0]

关于python - 如何使用 while 循环从列表的右端开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35354285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com