【发布时间】:2025-12-15 03:30:02
【问题描述】:
我有这段代码可以根据条件修改列表:
lst = [0, 0, 0, 2, 1]
for i, x in enumerate(reversed(lst)):
if x == 0:
lst[-i-1] = 9
break
有没有一种方法可以让我以更好、更优化的方式做到这一点,而无需使用 while 循环?
【问题讨论】:
-
你必须使用列表吗?或者你可以使用一个numpy数组吗?
-
@alwaysmvp45。只有一个列表。
-
列表是否仅在开头包含一系列 0,或者它们可以出现在列表中的任何位置?
-
@Nick:列表确实总是以 0 序列开头。唯一的非零元素在末尾。基本上我需要用 9 替换第一个 0(从末尾数)。
-
这个问题确实是重复的,如果它只是在寻找满足序列中某个标准的最后一个项目 - 请注意,您的原始解决方案比答案中提出的任何一个解决方案都要快。