[英]How to store one variable from multiple return variable from call function in List compression?
I want outputs like output
from following code function:我想从以下代码 function 中输出
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]
output:[501、502、503、504、505、506、507、508、509]
But I am trying with following code
in List compression but I failed.但我正在尝试使用列表压缩中的以下
code
,但我失败了。
Lst = [add for i in range(1, 10) add, _, _ = addMulDiv(i, 500)]
How can I do this easily?我怎样才能轻松做到这一点?
Thanks.谢谢。
Your function addMulDiv()
returns a tuple, so you can just use您的 function
addMulDiv()
返回一个元组,因此您可以使用
Lst = [addMulDiv(i, 500)[0] for i in range(1, 10)]
Your function is actually returning a tuple.您的 function 实际上是返回一个元组。 Hence, you can fetch the first element using
[0]
因此,您可以使用
[0]
获取第一个元素
Lst1 = [addMulDiv(i,500)[0] for i in range(1,10)]
You don't fully understood how List compressions works.您不完全了解列表压缩的工作原理。 For instance,
例如,
[i ** 2 for i in range(10) if i % 2 == 0]
This means that you get only even numbers from range and raise it to the power of 2.这意味着您只能从范围中获得偶数并将其提高到 2 的幂。
output : [4, 16, 36, 64]
Solution for your problem:解决您的问题:
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)
This means that you get only add result from you function return, because add result has 0 index in returned tuple这意味着您只能从 function 返回中获得添加结果,因为添加结果在返回的元组中具有 0 索引
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.