对于列表,我们可以得到元素list_name.index(3)
的索引
如何在deque中获取项目索引。
例如:
d_list = deque([1, 2, 3, 4])
获取元素3索引的最佳方法是什么。
编辑: 我使用的是Python 2.7.6
答案 0 :(得分:3)
根据pythons docs,如果你有python3.5或更高版本,你可以使用index
(根据tobspr的回答)。
对于较旧的蟒蛇,您可以将双端队列转换为列表,然后使用index
:
In [5]: from collections import deque
In [6]: d_list = deque([1, 2, 3, 4])
In [7]: list(d_list).index(3)
Out[7]: 2
答案 1 :(得分:2)
只需像常规列表一样使用它:
>>> d_list = collections.deque([1, 2, 3, 4])
>>> d_list.index(3)
2
编辑:这只能在Python 3.5中使用
答案 2 :(得分:1)
如果您使用的是Python 2.x,如果您想进行查找,deque
不是一个好的选择。您可以使用list
或使用enumerate()
执行以下操作:
>>> def index(element, queue):
... for i, ele in enumerate(queue):
... if ele == element:
... return i
... raise ValueError("{} is not in queue".format(element))
>>> index(2, deque([1, 2, 3, 4]))
1
或者,您可以实现自己的队列:
>>> class IndexedDeque(deque):
... def index(self, element):
... for i, ele in enumerate(self):
... if ele == element:
... return i
... raise ValueError("{} is not in queue".format(element))
>>> d_list = IndexedDeque([1, 2, 3, 4])
>>> d_list.index(2)
1