Skip to main content
 首页 » 编程设计

python之这条线有什么作用 (使用 num 和枚举)

2025年05月04日21rubylouvre

我是一名 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