如何在不使用"for i"循环的情况下浏览列表

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"循环并且更有效?

Net*_*ave 5

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)

然后,你能避免追加,因为你可以使用mapargs:

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)),有同样的效果.