mirror of
https://github.com/python/cpython.git
synced 2025-09-23 17:03:23 +00:00
Fix iter_index() to work with lists which do not support stop=None. (gh-109306)
This commit is contained in:
parent
7dedfd36dc
commit
f2a55fecd0
1 changed files with 11 additions and 0 deletions
|
@ -877,6 +877,7 @@ which incur interpreter overhead.
|
||||||
yield i
|
yield i
|
||||||
else:
|
else:
|
||||||
# Fast path for sequences
|
# Fast path for sequences
|
||||||
|
stop = len(iterable) if stop is None else stop
|
||||||
i = start - 1
|
i = start - 1
|
||||||
try:
|
try:
|
||||||
while True:
|
while True:
|
||||||
|
@ -1345,6 +1346,16 @@ The following recipes have a more mathematical flavor:
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
ValueError
|
ValueError
|
||||||
|
>>> # Verify that both paths can find identical NaN values
|
||||||
|
>>> x = float('NaN')
|
||||||
|
>>> y = float('NaN')
|
||||||
|
>>> list(iter_index([0, x, x, y, 0], x))
|
||||||
|
[1, 2]
|
||||||
|
>>> list(iter_index(iter([0, x, x, y, 0]), x))
|
||||||
|
[1, 2]
|
||||||
|
>>> # Test list input. Lists do not support None for the stop argument
|
||||||
|
>>> list(iter_index(list('AABCADEAF'), 'A'))
|
||||||
|
[0, 1, 4, 7]
|
||||||
|
|
||||||
>>> list(sieve(30))
|
>>> list(sieve(30))
|
||||||
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
|
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue