Как делает Python для цикла с повторяемой работой? ('для стороны в feed.entry')

В некоторой степени Фортран был разработан, имея в виду компиляторную оптимизацию. Язык поддерживает целые операции над массивом, где компиляторы могут использовать параллелизм (особенно на многоядерных процессорах). Например,

Плотное умножение матриц просто:

matmul(a,b)

норма L2 вектора x:

sqrt(sum(x**2))

операторы Moreover такой как FORALL, PURE & ELEMENTAL процедуры и т.д. дальнейшая справка для оптимизации кода. Даже указатели в Фортране не так гибки как C из-за этой простой причины.

предстоящий стандарт Фортрана (2008) имеет co-массивы, который позволяет Вам легко писать параллельный код. G95 (открытый исходный код) и компиляторы от CRAY уже поддерживают его.

Так да Фортран может быть быстрым просто, потому что компиляторы могут оптимизировать/параллелизировать его лучше, чем C/C++. Но снова как все остальное в жизни существуют хорошие компиляторы и плохие компиляторы.

6
задан smci 5 September 2019 в 12:22
поделиться

6 ответов

feed.entry - это то, что допускает итерацию и содержит объекты определенного типа. Это примерно похоже на c ++:

for (feed::iterator party = feed.entry.begin(); party != feed.entry.end(); ++party) {
   cout << (*party).location.address.text;
}
6
ответ дан 8 December 2019 в 02:19
поделиться

feed.entry - это свойство канала, и его значение (если это не так, этот код завершится ошибкой) объект, реализующий протокол итерации (например, массив) и имеющий iter метод, который возвращает объект-итератор

У итератора есть метод next (), возвращающий следующий элемент или вызывающий исключение, поэтому цикл for в Python на самом деле выглядит так:

iterator = feed.entry.__iter__()
while True:
    try:
        party = iterator.next()
    except StopIteration:
        # StopIteration exception is raised after last element
        break

    # loop code
    print party.location.address.text
23
ответ дан 8 December 2019 в 02:19
поделиться

Чтобы добавить мои 0,05 доллара к предыдущим ответам, вы также можете взглянуть на встроенную функцию перечисления

for i, season in enumerate(['Spring', 'Summer', 'Fall', 'Winter']):
    print i, season

0 Spring
1 Summer
2 Fall
3 Winter
5
ответ дан 8 December 2019 в 02:19
поделиться

party просто выполняет итерацию по итерация feed.entry

Взгляните на объяснения Dive into Python .

4
ответ дан 8 December 2019 в 02:19
поделиться

В Python для bucles не похожи на C / C ++, они больше всего похожи на PHP foreach . То, что вы делаете, не повторяется, как в , а с «(инициализация; условие; приращение)», а просто выполняет итерацию по каждому элементу в списке (строки ИТЕРИРУЕМЫ, как списки).

Например, :

for number in range(5):
    print number

выведет

0
1
2
3
4
1
ответ дан 8 December 2019 в 02:19
поделиться

Цикл Python for работает с итераторами , который должен реализовывать протокол итератора . Для получения дополнительной информации см .:

0
ответ дан 8 December 2019 в 02:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: