我有一个很大的可迭代对象,实际上是由以下内容提供的:
itertools.permutations(range(10))
我想访问第一百万个元素。我已经用不同的方法解决了问题。
Casting iterable to list and getting 1000000th element:
return list(permutations(range(10)))[999999]
Manually skiping elements till 999999:
p = permutations(range(10)) for i in xrange(999999): p.next() return p.next()
Manually skiping elements v2:
p = permutations(range(10)) for i, element in enumerate(p): if i == 999999: return element
Using islice from itertools:
return islice(permutations(range(10)), 999999, 1000000).next()
所以,我只是好奇,想知道在Python中是否有其他方式可以访问可迭代对象的特定元素,或者至少跳过前面的元素,以一种更加优雅的方式,或者我只需要使用上述其中之一。