2
我想从迭代中检索特定索引。这将相当于:解压缩特定索引
In [7]: def f():
...: return [1,2,3,4,5]
In [8]: (_, x, _, y, _) = f()
In [9]: x, y
Out[9]: (2, 4)
但我不想计算迭代多次或者是很长,我不想写太多_
小号
我的问题是纯粹出于好奇心,我实际上使用了一个局部变量,如上所示。
编辑:
一种解决方案是简单地使用与符号iterable[start:end:step]
切片:
In [24]: (x, y) = f()[1:4:2]
In [25]: x, y
Out[25]: (2, 4)`
EDDIT BIS:如果您需要检索每n
th元素 使用切片工程一个迭代,但如果你想索引2,3
和5,6
使用operator.itemgetter(2,3,5,6)(lst)
元素似乎是一个更好的解决方案:
In [8]: operator.itemgetter(2,3,5,6)(range(10))
Out[8]: (2, 3, 5, 6)
如果你知道你想要的索引,为什么不使用切片? – MattDMo
你有没有尝试过吗? – Totem
@MattDMo切片可以完美工作,如果使用'iterable [start:end:step]'符号,甚至可以用于非连续索引。谢谢你没有想到它! – bvidal