我注意到我认为是等价的两个列表构造函数之间的奇怪差异。
这是一个小例子:
hello = 'Hello World'
first = list(hello)
second = [hello]
print(first)
print(second)
此代码将产生以下输出:
['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']
['Hello World']
所以,这两个构造函数之间的区别非常明显......而且,我想这也可以推广到其他构造函数,但我无法理解其背后的逻辑。
有人可以照亮我的审讯吗?
请您参考如下方法:
list() 构造函数只接受一个 参数,该参数必须是一个可迭代。它返回一个新列表,其中每个元素都是给定可迭代对象中的一个元素。由于字符串是可迭代的(按字符),因此返回包含单个字符的列表。
[] 接受任意多的“参数”,每个参数都是列表中的一个元素;这些项目没有“评估”或迭代,它们按原样使用。
一切 as documented .
