设计Python的好奇心,为什么会这样?

时间:2013-05-02 14:09:59

标签: python python-2.7

说我们有x = [2,4,5]。如果我y = list(x),我会回到[2,4,5],对于元组也是如此。这对我来说有点令人惊讶,我原本可以预期[[2,4,5]]。不回馈列表清单的动机是什么?

2 个答案:

答案 0 :(得分:9)

list内置类型采用任意可迭代(无论何种类型),并从中创建 new 列表。由于list实例是可迭代的,因此可以通过迭代使用它来构造新列表。

如果您希望list([1,2,3])提供[[1,2,3]],为什么不期望list((1,2,3))返回[(1,2,3)]list(x for x in range(10))返回[<generator object <genexpr> at 0xef170>]

答案 1 :(得分:0)

如果给list()另一个列表,那么它会使用给定列表的成员创建一个列表(副本)