有沒有從發電機創建列表的快捷方式?我現在這樣做:從發電機創建列表
list_form = [ item for item in some_generator ]
我需要在迭代之前排序數據,因此不能直接在我的循環中使用生成器。
有沒有從發電機創建列表的快捷方式?我現在這樣做:從發電機創建列表
list_form = [ item for item in some_generator ]
我需要在迭代之前排序數據,因此不能直接在我的循環中使用生成器。
是,使用list()
constructor:
list_form = list(some_generator)
list()
採取任何迭代,並增加了它的價值到新創建的列表對象。
但是,如果你需要一個排序列表,你不妨直接使用sorted()
:
sorted_form = sorted(some_generator)
您可以使用list()
:
l = list(generator)
的致盲證明(是的,我覺得戲劇性的):
>>> from itertools import chain
>>> a = [['1', '2'], ['a']]
>>> gen = chain.from_iterable(a)
>>> gen
<itertools.chain object at 0x027EE3F0>
>>> list(gen)
['1', '2', 'a']
如果th在太戲劇化(使用itertools
證明一個簡單的點):
>>> xrange(10)
xrange(10)
>>> list(xrange(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
你可以簡單的使用:
list_form = list(some_generator)
該死,我應該想到sorted'的'。儘管如此,我的回答更像_dramatic_:P –