collections.deque獲得元素的索引列表對於我們可以得到元素list_name.index(3)
通過價值
如何獲得項目的指標在雙端隊列的指數。
例如: d_list = deque([1, 2, 3, 4])
什麼是讓元素的索引的最佳方法3.
編輯: 我使用Python 2.7.6
collections.deque獲得元素的索引列表對於我們可以得到元素list_name.index(3)
通過價值
如何獲得項目的指標在雙端隊列的指數。
例如: d_list = deque([1, 2, 3, 4])
什麼是讓元素的索引的最佳方法3.
編輯: 我使用Python 2.7.6
只是用它像普通的列表:
>>> d_list = collections.deque([1, 2, 3, 4])
>>> d_list.index(3)
2
編輯︰這是目前只能在Python 3.5中可能
根據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
如果您正在使用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
我們可以從所需位置隊列中刪除?或者我們只能從*** popleft()***中刪除? – Madhi