通过索引获取itertools对象,类似于在列表中的获取方式

问题描述 投票:0回答:1

[您是否有任何快速方法可以轻松地从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
python python-2.7 itertools
1个回答
1
投票

不,您无法为迭代器建立索引。这是一个折衷,您不必将对象保留在内存中,但是您不会获得随机访问和索引。您可以使用itertools.islice()对迭代器进行切片,但这当然不是索引操作,它会消耗迭代器。

© www.soinside.com 2019 - 2024. All rights reserved.