Вопросы с тегом «iterator»

125
Почему итерация по списку может быть быстрее, чем его индексация?

Читая документацию Java для списка ADT, говорится: Интерфейс List предоставляет четыре метода позиционного (индексированного) доступа к элементам списка. Списки (например, массивы Java) отсчитываются от нуля. Обратите внимание, что эти операции могут выполняться во времени, пропорциональном...

119
Итерировать по строкам строки

У меня есть многострочная строка, определенная следующим образом: foo = """ this is a multi-line string. """ Эту строку мы использовали в качестве тестового ввода для синтаксического анализатора, который я пишу. Функция-синтаксический анализатор получает file-объект в качестве входных данных и...

119
Есть ли выражение для бесконечного генератора?

Есть ли простое выражение генератора, которое может давать бесконечные элементы? Это чисто теоретический вопрос. Здесь нет нужды в "практическом" ответе :) Например, легко сделать конечный генератор: my_gen = (0 for i in xrange(42)) Однако, чтобы создать бесконечное число, мне нужно «засорить» свое...

115
Scala вниз или уменьшение цикла?

В Scala вы часто используете итератор для выполнения forцикла в возрастающем порядке, например: for(i <- 1 to 10){ code } Как бы вы сделали это, чтобы он вырос с 10 до 1? Думаю, 10 to 1дает пустой итератор (как обычная математика диапазона)? Я сделал скрипт Scala, который решает эту проблему,...

114
Какой лучший способ перебрать два или более контейнеров одновременно

C ++ 11 предоставляет несколько способов перебора контейнеров. Например: Цикл на основе диапазона for(auto c : container) fun(c) std :: for_each for_each(container.begin(),container.end(),fun) Однако каков рекомендуемый способ перебора двух (или более) контейнеров одинакового размера для выполнения...

110
Самый чистый способ получить последний элемент из итератора Python

Как лучше всего получить последний элемент из итератора в Python 2.6? Например, скажите my_iter = iter(range(5)) Какой самый короткий код / ​​самый чистый способ получить 4 от my_iter? Я мог бы это сделать, но это кажется не очень эффективным: [x for x in...

105
Является ли if (items! = Null) лишним перед foreach (T item in items)?

Я часто сталкиваюсь с таким кодом: if ( items != null) { foreach(T item in items) { //... } } По сути, ifусловие гарантирует, что foreachблок будет выполняться, только если itemsон не равен нулю. Мне интересно, ifдействительно ли это условие необходимо, или foreachон справится с ситуацией, если...

105
Как перемещаться по вектору с помощью итераторов? (C ++)

Цель состоит в том, чтобы получить доступ к «n-му» элементу вектора строк вместо оператора [] или метода «at». Насколько я понимаю, итераторы можно использовать для навигации по контейнерам, но я никогда раньше не использовал итераторы, и то, что я читаю, сбивает с толку. Если бы кто-нибудь мог...

103
ArrayIndexOutOfBoundsException при использовании итератора ArrayList

Прямо сейчас у меня есть программа, содержащая фрагмент кода, который выглядит так: while (arrayList.iterator().hasNext()) { //value is equal to a String value if( arrayList.iterator().next().equals(value)) { // do something } } Правильно ли я делаю это в части перебора ArrayList? Я получаю...

103
Однострочный, чтобы проверить, дает ли итератор хотя бы один элемент?

Сейчас делаю вот что: try: something = iterator.next() # ... except StopIteration: # ... Но мне нужно выражение, которое я могу поместить в простое ifутверждение. Есть ли что-нибудь встроенное, что сделало бы этот код менее неуклюжим? any()возвращается, Falseесли итерация пуста, но потенциально...

101
Итератор кругового списка в Python

Мне нужно перебирать круговой список, возможно, много раз, каждый раз, начиная с последнего посещенного элемента. Вариант использования - это пул соединений. Клиент запрашивает соединение, итератор проверяет, доступно ли указанное соединение, и возвращает его, в противном случае выполняет цикл до...

96
Обновить значения строк, в которых выполняется определенное условие в пандах

Скажем, у меня есть следующий фрейм данных: Каков наиболее эффективный способ обновить значения столбцов feat и another_feat, где поток имеет номер 2 ? Это все? for index, row in df.iterrows(): if df1.loc[index,'stream'] == 2: # do something ОБНОВЛЕНИЕ: что делать, если у меня более 100 столбцов?...