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 之前。
我无法弄清楚为什么这段代码不起作用
>>> 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 之前。