我是一名 Python 初学者,我得到了这段代码来写出每一行的作用。这是代码:
z = [int(input("Enter your nth term sequence ")) for _ in range(12)]
total = sum([num * 8 if i % 2 == 0 else num * 4 for i, num in enumerate(z)])
因此,我假设 z 是一个列表,用户在其中输入第 n 个术语序列的数字,他们可以输入 12 位数字。如果除以 2 的余数为 0,则代码然后找到数字乘以 8 的总和。我只是不明白 ([num * 8 if i % 2 == 0 else num * 4 for i, num in enumerate(z)]) 的意思。我已经尝试并试图搜索东西,但它太令人困惑了。如果可能请帮忙
请您参考如下方法:
代码:
foo = [num * 8 if i % 2 == 0 else num * 4 for i, num in enumerate(z)]
在功能上等同于此:
foo = []
for i, num in enumerate(z): # num is element in z, i is index of num
if i % 2 == 0:
foo.append(num*8)
else:
foo.append(num*4)
然后用户对结果调用sum。
这是否回答了您的问题?
编辑:解释枚举
您应该习惯于阅读有关函数的文档,例如 enumerate .看完之后,如果还是不明白,那就去stackoverflow上搜索一下吧。例如:A post asking what enumerate is with a good answer
调用:
for num in z:
i = z.index(num)
# Do stuff
在功能上等同于说:
for i, num in enumerate(z):
# Do stuff
