我是python的新手,正在尝试在生成器表达式中执行条件,如果满足条件,我想将索引除以2,然后将索引添加到列表中。否则,我想乘以3并加1。另外,顺序必须是从n到1。我真的无法弄清楚我在哪里更新索引。 到目前为止,我的代码如下:
def foo(n):
print(list(i // 2 if i % 2 == 0 else i * 3 + 1 for i in reversed(range(n + 1))))
假设n = 5,输出应为:
[5, 16, 8, 4, 2, 1]
我的输出:
[16, 2, 10, 1, 4, 0]
我看到您可以使用类似的方法进行迭代:
for i in range(start, end, -1)
如何更改“ -1”以符合我的条件? (如果是偶数,则i = i / 2,否则为i * 3 + 1)。 否则,我会完全偏离航路,在这种情况下,我需要提示。谢谢!