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.
Created on 2015年01月09日 07:25 by Devin Jeanpierre, last changed 2022年04月11日 14:58 by admin. This issue is now closed.
| Messages (3) | |||
|---|---|---|---|
| msg233721 - (view) | Author: Devin Jeanpierre (Devin Jeanpierre) * | Date: 2015年01月09日 07:25 | |
>>> class AppendOnUnequal(object): ... def __init__(self, append_to): ... self.append_to = append_to ... def __eq__(self, other): ... if self is other: ... return True ... self.append_to.append(self) ... return False ... >>> L = [1]; AppendOnUnequal(L) in L True >>> L = [1]; L.count(AppendOnUnequal(L)) 1 >>> L = [1]; L.remove(AppendOnUnequal(L)) >>> L = [1]; L.index(AppendOnUnequal(L)) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: <__main__.AppendOnUnequal object at 0x7f2562d071d0> is not in list .index() is the only odd one out here. Looks like a bug to me. |
|||
| msg233723 - (view) | Author: Raymond Hettinger (rhettinger) * (Python committer) | Date: 2015年01月09日 07:59 | |
This is a non-guaranteed behavior. It is allowed to be different from other list methods. The behavior is also very old, stable, and has not been a problem in practice. No good would come from changing it. |
|||
| msg233725 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) | Date: 2015年01月09日 08:07 | |
This is because list.index() has start and stop parameters, and L.index(x) is equivalent to L.index(x, 0, len(L)). In list.count() and list.remove() the limit is dynamic during iteration, but in list.index() it is specified by arguments before iterating. It is possible to make the limit static in list.count() and list.remove() or to make it floating if stop is absent or negative in list.index(), but this will complicate and slow down the code without good reason. I suggest to close this issue as "wont fix". |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:58:11 | admin | set | github: 67393 |
| 2015年01月09日 08:07:29 | serhiy.storchaka | set | nosy:
+ serhiy.storchaka messages: + msg233725 |
| 2015年01月09日 07:59:28 | rhettinger | set | status: open -> closed nosy: + rhettinger messages: + msg233723 resolution: not a bug |
| 2015年01月09日 07:25:48 | Devin Jeanpierre | create | |