此问题在此处已有答案:
How can I collect the results of a repeated calculation in a list, dictionary etc. (or make a copy of a list with each element modified)?(2个答案)
Explicitly declaring variable as unused in Python/PyCharm(5个答案)
Convert tuple to list and back(11个答案)
四年前关闭了。
当函数被调用时,*args是一个元组,所以我必须先将每个参数附加到一个列表中,然后通过将它们的值Map为float并使用sum()函数对它们求和。
这段代码没有任何错误,但是我收到了一个警告,说“未使用的变量i”。
def function(*args):
x = []
y = 0
for i in range(len(args)):
x.append(args[y])
y += 1
x = list(map(float, x))
return sum(x)
有没有一种方法可以用其他的方法来完成这个过程,而不需要使用“for i”循环,并且更有效?
2条答案
按热度按时间qojgxg4l1#
Python式的方法大概是这样的:
现在,为了在代码中解释这一切,可以避免使用变量
y
,因为它的作用与i
完全相同:然后,您可以避免追加,因为您可以使用
map
而不是args
:你也可以只使用
map(float, args)
,而不需要为此创建一个中间列表:它可以抽象为
sum
,sum(float(x) for x in args)
中的生成器,或者Mapsum(map(float, args))
,效果相同.ewm0tg9j2#
当
i
已经在为您做这项工作时,您不必引入y
:当然,您可以通过直接循环
args
而不是range
来进一步简化此函数:您甚至可能希望在追加时合并
float
操作,以避免之后出现map
:此外,您还可以使用列表解析来缩短这个过程:
或者,将所有内容合并为一行:
当然,根据需求的复杂性,您可能希望在通过
try... except
块将每个元素转换为floats
之前对其进行验证。