Python 设置:为什么my_set = {*my_list}无效?

Python Set: why is my_set = {*my_list} invalid?

我无法弄清楚为什么这段代码不起作用

>>> my_list = [1,2,3,4,5]
>>> my_set = {*my_list}
   File "<stdin>", line 1
    my_set = {*my_list}
          ^
SyntaxError: invalid syntax

*args用于python解包列表。我的期望是上述操作会创建一个集合,但事实并非如此。 Python 中的 *args 和 **kwargs 能否仅用于将参数作为函数传递?

我知道 set() 函数,但很好奇为什么这个语法不起作用。

感谢 PEP0448,这些天它 确实 工作,但你必须升级到 3.5:

>>> my_list = [1,2,3,4,5]
>>> my_set = {*my_list}
>>> my_set
{1, 2, 3, 4, 5}

就是说,set(my_list) 是将列表转换为集合的明显方法,因此这是您应该 使用的方法。

以下是使用 pre-defined list

声明 set 的方法
my_list = [1,2,3,4,5]  
my_set = set(my_list)

当您不确定有多少参数可以传递给您的函数时,您可以使用*args,即它允许您将任意数量的参数传递给 函数

总之,是的 - *args 用于 函数 header Python 版本 3.5 之前。