我无法弄清楚为什么这段代码不起作用
>>> my_list = [1,2,3,4,5]
>>> my_set = {*my_list}
File "<stdin>", line 1
my_set = {*my_list}
^
SyntaxError: invalid syntax
在python中使用 *args
来解压缩列表。我的期望是上面的操作会产生一组,但事实并非如此。 Python中的* args和** kwargs只能用于将参数作为函数传递吗?
我知道set()
函数,但很奇怪为什么这种语法不起作用。
答案 0 :(得分:6)
感谢PEP0448,这些天 工作,但您必须升级到3.5:
>>> my_list = [1,2,3,4,5]
>>> my_set = {*my_list}
>>> my_set
{1, 2, 3, 4, 5}
也就是说,set(my_list)
是将列表转换为集合的明显方式,因此它应该使用的方式。
答案 1 :(得分:0)
以下是使用预定义set
list
的方法
my_list = [1,2,3,4,5]
my_set = set(my_list)
如果您不确定可以将多少参数传递给 函数 ,则可以使用*args
,即它允许您传递任意数量的 功能 的参数。
总之,是的 - *args
只是 在Python之前的 功能 标头中使用版本3.5。