Я пытался использовать functools.partial с itertools.count, используя zip с помощью itertools.count ():
g = functools.partial(zip, itertools.count())
При вызове g с такими входами, как "abc", "ABC", я заметил, что itertools.count () таинственно "прыгает".
Я думал, что должен получить тот же результат, что и непосредственное использование zip с itertools.count ()? как:
>>> x=itertools.count();
>>> list(zip("abc",x))
[('a', 0), ('b', 1), ('c', 2)]
>>> list(zip("ABC",x))
[('A', 3), ('B', 4), ('C', 5)]
Но вместо этого я получаю следующее - обратите внимание, что начальный индекс при втором вызове g равен 4 вместо 3:
>>> g = functools.partial(zip, itertools.count())
>>> list(g("abc"))
[(0, 'a'), (1, 'b'), (2, 'c')]
>>> list(g("ABC"))
[(4, 'A'), (5, 'B'), (6, 'C')]