美文网首页
list()原理

list()原理

作者: Elvis_zhou | 来源:发表于2018-11-13 17:50 被阅读0次

    今天看到个好玩的东西:

    a = (x for x in range(10))
    print a
    print list(a)
    
    
    <generator object <genexpr> at 0x7f0f46055f00>
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    

    a 是一个生成器,很明显,但是用list(a)之后,却直接返回了一个列表。
    list()解释:

    def __init__(self, seq=()): # known special case of list.__init__
            """
            list() -> new empty list
            list(iterable) -> new list initialized from iterable's items
            # (copied from class doc)
            """
            pass
    

    我在之前的工作中只用过list(),并没有用过list(iterable),现在看来之前的类型转换也是同理,包括list,dict之类,他们只是元素的容器,通过next把iterable的元素取出,再进行类型转换。
    有兴趣的可以到python的解释器里去看看源码,反正我是没看懂 XD。

    相关文章

      网友评论

          本文标题:list()原理

          本文链接:https://www.haomeiwen.com/subject/wdvxxqtx.html