爲什麼下面的代碼在python中執行時給出'generator'類型?爲什麼在python中執行下面的代碼給了<type'generator'> type?
dic= ((I, (I**3)) for I in range(25))
print type(dic)
輸出:
有人可以解釋我嗎?
爲什麼下面的代碼在python中執行時給出'generator'類型?爲什麼在python中執行下面的代碼給了<type'generator'> type?
dic= ((I, (I**3)) for I in range(25))
print type(dic)
輸出:
有人可以解釋我嗎?
所得類型由周圍括號定義:
>>> 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'>
謝謝你,這是簡單和夢幻般的解釋maurice,:) thumbsup,它清除了我的疑問 – Nagesh
如果你要產生大量的數據,但如果你的內存需要一個所有你只需要一次一個,那麼你可以使用發電機,因爲你在你的代碼
dic= ((I, (I**3)) for I in range(25))
# type of dic is a generator
但數據以列表形式,然後使用括號代替使用假設。
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 (7,243),(8,512),(9,729),(10,1000),(11,1331),(12,1728),(13,2197),(14,2744), ),(15,3335),(16,4096),(17,4913),(18,5832),(19,6859),(20,8000),(21,9261),(22,10648), (23,12167),(24,13824)]
我明白了,謝謝! – Nagesh
檢查托架,第at爲什麼,當你使用'[,]'而不是'(,)'會發生什麼' –
你爲什麼期望別的東西? – user2357112
因爲您創建了一個生成器,您期望什麼? –