Альтернатива next (next (...)) для доступа к n-му элементу итератора - PullRequest
1 голос
/ 26 марта 2020

У меня есть итератор списка children, эквивалентный <list_iterator object at 0x050BAAF0> (отладчик VS-кода), и мне нужен доступ к 4-му элементу этого итератора, который я точно знаю, существует.

Существует ли быстрый способ, вместо того, чтобы 4 раза вызывать next(children), чтобы получить доступ к элементу в n-й позиции в итераторе списка, не имея самого списка.

Спасибо!

РЕДАКТИРОВАТЬ: вот код: на самом деле итератор является потомком узла BeautifulSoup div

virgin_url = "https://www.clicpublic.be/product/_"
product_soup = get_soup(virgin_url + single_id + ".html") 
#get_soup returns the BeatutifulSoup([HTML of page])
bs_info_list = product_soup.findAll("div", {'class': "txtProductInformation"}
children = bs_info_list[0].children

1 Ответ

1 голос
/ 26 марта 2020

вы можете использовать itertool.islice :

from itertools import islice

next(islice(children, 3, None))

4-й элемент имеет индекс 3

ex:

from itertools import islice

children = (e for e in range(100))
next(islice(children, 3, None))

output:

3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...