This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: add the method `index` to collections.deque
Type: enhancement Stage:
Components: Extension Modules Versions: Python 3.2
process
Status: closed Resolution: rejected
Dependencies: Superseder:
Assigned To: rhettinger Nosy List: Simon.Liedtke, ned.deily, rhettinger, stutzbach
Priority: low Keywords:

Created on 2010-10-10 00:23 by Simon.Liedtke, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Messages (5)
msg118296 - (view) Author: Simon Liedtke (Simon.Liedtke) Date: 2010-10-10 00:23
I'd like to have the method `index` not only for list, but also for collections.deque.

Here is my attempt: http://bitbucket.org/derdon/hodgepodge/src/tip/extended_deque.py

I'm looking forward to see this method implemented in the stdlib!
msg118297 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2010-10-10 01:37
Since you are requesting adding a method to an existing data type, you should probably raise this issue first on the python-ideas mailing list and be prepared to justify use cases for it.

http://mail.python.org/mailman/listinfo/python-ideas
msg118304 - (view) Author: Raymond Hettinger (rhettinger) * (Python committer) Date: 2010-10-10 05:30
The absence of index() from collections deque wasn't an oversight.  Deques are not really about indexed access, they are about appending and popping from the ends.  I'm curious about your use case and whether it is a good match for this data structure.
msg118305 - (view) Author: Daniel Stutzbach (stutzbach) (Python committer) Date: 2010-10-10 05:36
Hello Simon,

Accessing an arbitrary element of a deque takes O(n) time, making your .index implementation O(n**2).

If you describe the kinds of operations that you need to perform efficiently, we may be able to suggest a better data structure for you to use.
msg118333 - (view) Author: Simon Liedtke (Simon.Liedtke) Date: 2010-10-10 10:57
I see that adding this method to a deque is useless. A list is better for this kind of operation. I just wrote it for fun and realized that it was implemented rather slow.
History
Date User Action Args
2022-04-11 14:57:07adminsetgithub: 54268
2010-10-10 10:57:31Simon.Liedtkesetstatus: open -> closed
resolution: rejected
messages: + msg118333
2010-10-10 05:36:32stutzbachsetmessages: + msg118305
2010-10-10 05:30:08rhettingersetpriority: normal -> low
nosy: rhettinger, ned.deily, stutzbach, Simon.Liedtke
messages: + msg118304

assignee: rhettinger
components: + Extension Modules, - Library (Lib)
2010-10-10 01:37:57ned.deilysetnosy: + rhettinger, stutzbach, ned.deily

messages: + msg118297
versions: + Python 3.2
2010-10-10 00:23:45Simon.Liedtkecreate