为什么在python中执行下面的代码会给出'generator'类型?
dic= ((I, (I**3)) for I in range(25))
print type(dic)
输出:
有人能解释我吗?
答案 0 :(得分:1)
如果您要生成大量数据,但一次只需要一个,那么您可以使用生成器,就像在代码中一样
dic= ((I, (I**3)) for I in range(25))
# type of dic is a generator
但是如果你想在内存中以列表的形式存储所有数据而不是使用prenthesis,请使用括号。
dic= [(I, (I**3)) for I in range(25)]
# type of dic is list
结果:[(0,0),(1,1),(2,8),(3,27),(4,64),(5,125),(6,216),(7 ,343),(8,512),(9,729),(10,1000),(11,1331),(12,1728),(13,2197),(14,2744),(15,3375) ),(16,4096),(17,4913),(18,5832),(19,6859),(20,8000),(21,9261),(22,10648),(23,12167), (24,13824)]
答案 1 :(得分:0)
结果类型由周围的括号定义:
>>> dic = ((I, (I**3)) for I in range(25))
>>> type(dic)
<class 'generator'>
>>> dic = [(I, (I**3)) for I in range(25)]
>>> type(dic)
<class 'list'>
>>> dic = {I: (I**3) for I in range(25)}
>>> type(dic)
<class 'dict'>