有没有办法在Python中不使用方括号来初始化列表?

Han*_*Sun 3 python functional-programming

有没有办法在Python中不使用方括号来初始化列表?

例如,是否有这样的函数list_cons:

x = list_cons(1, 2, 3, 4)
Run Code Online (Sandbox Code Playgroud)

相当于:

x = [1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

Lev*_*sky 11

In [1]: def list_cons(*args):
   ...:     return list(args)
   ...: 

In [2]: list_cons(1,2,3,4)
Out[2]: [1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

  • 不完全确定提问者为什么问这个问题,但这个答案明显符合所追求的语法,因此几乎可以肯定是提问者需求的最佳答案. (3认同)

rob*_*ert 6

使用列表构造函数并将其传递给元组.

x = list((1,2,3,4))
Run Code Online (Sandbox Code Playgroud)


sen*_*rle 6

我认为这不是一个特别有用的功能.输入括号这么难吗?如果您解释为什么要这样做,也许我们可以给您一个更有用的答案.

不过,在Python 3中你可以做一些有趣的事情:

>>> (*x,) = 1, 2, 3, 4, 5
>>> x
[1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

你甚至可以省略括号 - *x, = 1, 2, 3, 4, 5也可以.

  • 还不知道,所以+1.但我希望我永远不会在生产代码中偶然发现这个;-) (3认同)
  • @Dhara,简短的回答是"[因为](http://www.python.org/dev/peps/pep-3132/)." 考虑[此问题](http://stackoverflow.com/questions/6967632/getting-python-sequence-assignments-unpacking-right)了解更多极端情况. (2认同)