当前位置: 首页 > 面试题库 >

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

刘丰羽
2023-03-14
问题内容

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


问题答案:

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


 类似资料:
  • 问题内容: 首先,我想澄清一个问题:它是关于函数的, 而不是 列表的片段或类似的字符串。 文档提到该函数在NumPy中使用,并且没有给出用法示例(说了 如何使用它, 但没有说 何时使用它 )。而且,我 从未 见过在任何Python程序中使用过此函数。 在以纯Python(无NumPy或SciPy)编程时,何时应使用该函数?任何示例将不胜感激。 问题答案: 给出与相同的结果。一个的优点对象是,它可以

  • 问题内容: 我遇到以下代码: 这是什么做不?就此而言,那没有做什么呢? 问题答案: 此语法是切片分配。一片意味着整个列表。和之间的区别在于后者不会替换原始列表中的元素。当有两个引用列表时,这是可见的 要查看差异,只需从上面的分配中删除。 从字面上看,如果是变量名而不是内建函数,则将问题的标题替换为省略号

  • 问题内容: 之间有什么区别: 我看到super在只有单一继承的类中经常使用它。我知道为什么你会在多重继承中使用它,但是不清楚在这种情况下使用它的好处。 问题答案: 单继承的好处是微不足道的-大多数情况下,你不必将基类的名称硬编码到每个使用其父方法的方法中。 但是,如果不使用,几乎不可能使用多重继承。这包括常见的惯用语,例如,接口,抽象类等。这扩展到了以后扩展你的代码的代码。如果以后有人想编写一个扩

  • 问题内容: Google不允许我进行搜索,因此我在查找相关文档时遇到了麻烦。有人知道吗 问题答案: 在成对的对象之间执行 就地 +操作。尤其是: 集合:联合操作 dicts:更新操作 计数器:(多集)联合运算 数字:按位或,二进制运算 在大多数情况下,它与操作员有关。请参阅下面的示例。 套装 例如,两个分配的集合的并并共享以下等效表达式: 其中的最终值等于: 分配的OR操作 就地或运算 通过特殊方

  • 问题内容: 我看到了一个将函数应用于元组的代码示例。结果,它返回一个负整数。我想知道这个功能做什么?Google没有帮助。我找到了一个页面,该页面解释了哈希的计算方式,但没有解释为什么我们需要此函数。 问题答案: 哈希是一个固定大小的整数,用于标识特定值。每个值都需要有自己的哈希,因此对于相同的值,即使不是同一对象,您也将获得相同的哈希。 散列值的创建方式应使结果值均匀分布,以减少所得到的散列冲突

  • 问题内容: 我在这里碰到了这个,总是这样使用: 什么是运营商做的,为什么不使用普通的或? 抱歉,如果以前没有回答,搜索引擎将不喜欢标点符号。 问题答案: http://docs.python.org/reference/expressions.html#notin说: [操作员]和是等效的;为了与C保持一致,是首选。[…]拼写被认为是过时的。