有没有办法告诉你是否在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
答案 0 :(得分:6)
一般来说,没有。你可以做一些不愉快的事情,比如isinstance(my_iterable, type(iter(xrange(1))))
vs isinstance(my_iterable, type(iter([])))
,但是使用裸迭代器接口,生成器和列表对他们的客户来说是无法区分的。