Python 中的 list() 和方括号有什么区别?

What are the differences between list() and square bracket in Python?

提问人:CHANHYEOK KIM 提问时间:11/14/2023 更新时间:11/14/2023 访问量:29

问:

我可以放入一些字符串,并将其制作成列表,每个字符都分开。

some_string = input()

string_list = list(*some_string)
print(string_list)

但是,如果字符串长度大于 2,则 list 不会得到此参数。 相反,当我使用方括号“[]”时,即使它大于 2,它也能正常工作。

some_string = input()

string_list = [*some_string]
print(string_list)

这意味着这两者是不同的。

所以我试着找出这两者之间的区别,但这两者得到了下面写的相同的帮助文档。help(list())help([])

Help on list object:


class list(object)
|  list(iterable=(), /)
|
|  Built-in mutable sequence.
|
|  If no argument is given, the constructor creates a new empty list.
|  The argument must be an iterable if specified.
|
|  Methods defined here:
\-- More --

如果这两者相同,为什么一个有效,为什么另一个不行?

列表 方括号

评论


答:

0赞 Kachida 11/14/2023 #1

对于 list() 构造函数,它接受作为单个参数的可迭代对象作为参数,是的,在上面的代码片段字符串中是可迭代的(即变量:some_string)。如果我们解压缩 *some_string,它会导致该构造函数的许多参数,并且会导致错误,因为列表构造函数只接受一个参数

有关何时在 Python 中使用列表构造函数的详细说明,请参阅此链接: https://www.pythonmorsels.com/using-list/

some_string='World'
some_list=list(some_string)
print(some_list)