Gus*_*ros 0 python indexing list python-3.x
当函数被调用时,*args是一个元组,所以我必须先将每个参数附加到列表中.然后我通过将它们的值映射到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)
Run Code Online (Sandbox Code Playgroud)
有没有办法以其他方式执行此操作,不使用"for i"循环并且更有效?
pythonic的方式是这样的:
def function(*args):
return sum(float(x) for x in args)
Run Code Online (Sandbox Code Playgroud)
现在,通过代码解释所有这些.您可以避免使用该变量,y因为它与以下内容完全相同i:
def function(*args):
x = []
for i in range(len(args)):
x.append(args[i])
x = list(map(float, x))
return sum(x)
Run Code Online (Sandbox Code Playgroud)
然后,你能避免追加,因为你可以使用map在args:
def function(*args):
x = list(map(float, args))
return sum(x)
Run Code Online (Sandbox Code Playgroud)
您也可以使用map(float, args),无需为此purpouse创建中间列表:
def function(*args):
x = map(float, args)
return sum(x)
Run Code Online (Sandbox Code Playgroud)
因此,它可以是抽象的发生器内sum,sum(float(x) for x in args)或地图sum(map(float, args)),有同样的效果.
| 归档时间: |
|
| 查看次数: |
599 次 |
| 最近记录: |