python - 我使用*时语法无效

时间:2014-01-27 16:38:05

标签: python python-2.7

我创建了一个简单的函数来解析迭代中的N个元素。

def drop_first_last(grades):
    grades = first, *middle, last
    return avg(middle)

当我运行此功能时发生以下错误:

grades = first, *middle, last

SyntaxError: invalid syntax

我不知道为什么会出现这个错误,如何解决?

2 个答案:

答案 0 :(得分:7)

只是做:

middle = grades[1:-1]
return avg(middle)     

答案 1 :(得分:0)

错误的原因是这不是Python语法! *表示法用于声明可变数量的参数和解包元组。您正在尝试使用它来执行类似Haskell等函数式语言中的pattern matching之类的操作。正如@thegrinner所指出的那样,这项任务是倒退的。