如何从列表理解中的调用函数存储多个 return 变量中的一个变量?

How to store one variable from multiple return variable from call function in List compression?

我希望从以下代码函数中得到类似 output 的输出:

def addMulDiv(i, k):
    add=k+i
    mul=k*i
    div=k//2
    return add, mul, div

Lst = []
for i in range(1, 10):
    add, _, _ = addMulDiv(i, 500)
    Lst.append(add)
    
print(Lst)

output: [501, 502, 503, 504, 505, 506, 507, 508, 509]

但我正在尝试在列表压缩中遵循 code 但我失败了。

Lst = [add for i in range(1, 10) add, _, _ = addMulDiv(i, 500)]

我怎样才能轻松做到这一点?

谢谢。

你的函数 addMulDiv() returns 一个元组,所以你可以只使用

Lst = [addMulDiv(i, 500)[0] for i in range(1, 10)]

你的函数实际上是返回一个元组。因此,您可以使用 [0]

获取第一个元素
Lst1 = [addMulDiv(i,500)[0] for i in range(1,10)]

您还没有完全理解列表压缩的工作原理。 例如,

[i ** 2 for i in range(10) if i % 2 == 0]

这意味着您只能从范围中获取偶数并将其提高到 2 的幂。

output : [4, 16, 36, 64]

您的问题的解决方案:

def addMulDiv(i, k):
    add = k + i
    mul = k * i
    div = k // 2
    return add, mul, div


Lst = [addMulDiv(i, 500)[0] for i in range(1, 10)]
print(Lst)

这意味着您只能从函数 return 中获得添加结果,因为添加结果在 returned 元组

中的索引为 0