一尘不染

list()函数在Python中做什么?

python

我知道list()构造函数会创建一个新列表,但是它的特征到底是什么?

  1. 打电话时会list((1,2,3,4,[5,6,7,8],9))怎样?

  2. 打电话时会list([[[2,3,4]]])怎样?

  3. 打电话时会list([[1,2,3],[4,5,6]])怎样?

据我所知,调用构造函数list会删除最外面的花括号(元组或列表),并将其替换为[]。这是真的?还有什么其他细微差别list()


阅读 360

收藏
2021-01-20

共1个答案

一尘不染

list()将传递给它的iterable转换为列表。如果itertable已经是一个列表,则返回 浅表副本
,即仅最外层的容器是新的,其余对象仍然相同。

>>> t = (1,2,3,4,[5,6,7,8],9)
>>> lst = list(t) 
>>> lst[4] is t[4]  #outermost container is now a list() but inner items are still same.
True

>>> lst1 = [[[2,3,4]]]
>>> id(lst1)
140270501696936
>>> lst2 = list(lst1)
>>> id(lst2)
140270478302096
>>> lst1[0] is lst2[0]
True
2021-01-20