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

发布于 2021-01-29 14:10:38

我知道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()

关注者
0
被浏览
215
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    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
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看