我知道list()构造函数会创建一个新列表,但是它的特征到底是什么?
list()
打电话时会list((1,2,3,4,[5,6,7,8],9))怎样?
list((1,2,3,4,[5,6,7,8],9))
打电话时会list([[[2,3,4]]])怎样?
list([[[2,3,4]]])
打电话时会list([[1,2,3],[4,5,6]])怎样?
list([[1,2,3],[4,5,6]])
据我所知,调用构造函数list会删除最外面的花括号(元组或列表),并将其替换为[]。这是真的?还有什么其他细微差别list()?
list
[]
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