[您是否有任何快速方法可以轻松地从itertools.izip object
派生索引,类似于您从list
派生的方法?
我正在尝试比较2个值,一个来自列表,另一个来自itertools对象。虽然我可以在对象上使用enumerate
来获取值,但似乎需要迭代该对象内的所有值。
# if iterating from a list
list_values = [(1, 'a', 'john'), (2, 'b', 'jack'), (3, 'c', 'jill')]
print list_values[1] # returns me (2, 'b', 'jack')
# if trying to do the same as above but towards an itertools objext
iter_values = itertools.izip([1, 2, 3], ['a', 'b', 'c'], ['john', 'jack', 'jill'])
print iter_values[1] # Errors-out
不,您无法为迭代器建立索引。这是一个折衷,您不必将对象保留在内存中,但是您不会获得随机访问和索引。您可以使用itertools.islice()
对迭代器进行切片,但这当然不是索引操作,它会消耗迭代器。