确定for循环是在迭代列表还是生成器

时间:2011-08-10 01:04:25

标签: python

有没有办法告诉你是否在python中迭代列表或生成器?

for i in range(10):
     print some_param     # will identify as a list

for i in xrange(10):
     print some_param     # will identify as a generator

1 个答案:

答案 0 :(得分:6)

一般来说,没有。你可以做一些不愉快的事情,比如isinstance(my_iterable, type(iter(xrange(1)))) vs isinstance(my_iterable, type(iter([]))),但是使用裸迭代器接口,生成器和列表对他们的客户来说是无法区分的。