我想从迭代器创建一个set
,等。list
不幸的是,它们的构造函数需要可迭代而不是迭代器。我不想创建一个很快就会被丢弃的可迭代对象。
当然,我可以简单地使用列表或集合理解,它可以精确地做我想要的(以及更多)。但是,它们的语法是特殊的。所以当我试图写一个函数时:
def create_from_gen(container_type, generator):
return container_type(generator)
我被困。对于用户定义的容器,我当然可以定义自己的构造函数;对于库和内置类型,我别无选择。我可以检查list
and set
,并使用我认为的特殊语法,但这很难看。