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

Sha*_*rad 4 python set kwargs

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

>>> my_list = [1,2,3,4,5]
>>> my_set = {*my_list}
   File "<stdin>", line 1
    my_set = {*my_list}
          ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

*args在python中用于解压缩列表.我的期望是上面的操作会产生一组,但事实并非如此.Python中的*args和**kwargs只能用于将参数作为函数传递吗?

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

DSM*_*DSM 6

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

>>> my_list = [1,2,3,4,5]
>>> my_set = {*my_list}
>>> my_set
{1, 2, 3, 4, 5}
Run Code Online (Sandbox Code Playgroud)

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