Форум сайта python.su
-1
Здравствуйте.
Зачем доп элемент “element” в for для перебора списка?
spisok = [10, 20, 30, 40, 50, 60, 70, 80, 90] i = 0 for element in spisok: print(element) print(spisok[i]) spisok[i] = element + 2 i = i + 1 print(spisok)
spisok = [10, 20, 30, 40, 50, 60, 70, 80, 90] i = 0 for i in spisok: print(spisok[i]) spisok[i] = spisok[i] + 2 i = i + 1 print(spisok)
Цикл for широко используется в языке программирования Python, т.к. является
важным инструментом при обработки структур данных. Также следует запомнить, что
цикл for в Питоне особенный. Он не является аналогом циклов for во многих других
языках программирования, где представляет собой, так называемый, цикл со
счетчиком
Отредактировано Webfave (Ноя. 30, 2013 07:54:38)
Офлайн
75
Webfaveпотому-что это по тупому, а в питоне все няшное и кавайное
Почему нельзя перебирать как массив в других языках?
Офлайн
-1
А по существу можете ответить? Чем такое разделение лучше?
Офлайн
75
так намного удобней
что обычно делают с for ? переберают елементы в структуре или делают что-то N число раз
for(i=0; i <Array.length;i++){ dosomething(Array[i]) } #в питоне for x in list: dosomething(x)
n = 100 for(i=0; i <n ;i++){ dosomething() } # питон for _ in range(100): dosomething()
Отредактировано Singularity (Ноя. 30, 2013 09:06:24)
Офлайн
43
WebfaveРаботу такого цикла проще понять.
Чем такое разделение лучше?
Webfaveэто копия а не указатель
Она вроде что-то указателя на элемент списка.
Офлайн
-1
В примере переменная i нужна для того, чтобы записать изменившееся значение элемента в список. В ней хранится значение индекса очередного элемента списка. В то время, как переменная element связывается со значением очередного элемента данных. В заголовке цикла for происходит обращение очередному элементу списка.
for i=0 in [0, 1, 2, 3, 4] или for i=0 in range(5) # range возвращает список из 5 элементов или for _ in range(5) # _ замена нулевого элемента
a = 0 if a<=4: for _ in range(10): print(a) a = a + 1
Офлайн
253
WebfaveМожно:
Почему нельзя перебирать как массив в других языках?
a=[1,2,3] for i in range(len(a)): print(a[i])
WebfaveВ обычном цикле с индексом она тоже есть - это индекс. Поэтому она не дополнительная.
Не понятно, какое преимущество дает дополнительная переменная element
for e in a: print(e) for i in range(3): print(e[i])
[i]
WebfaveНет. Объект должен поддерживать протокол итератора.
то значение всегда должно быть списком
a = 0 if a<=4: # Зачем проверять - вы только что присвоили? for _ in range(10): print(a) a = a + 1 # почему не используете a+=1?
Отредактировано doza_and (Ноя. 30, 2013 17:02:07)
Офлайн
857
Webfave
Например, на паскале можно написать от 0 до 10.
for i in range(0, 11):
Отредактировано py.user.next (Ноя. 30, 2013 20:30:34)
Офлайн
-1
doza_andЧто вы имеете ввиду? Страшный по оформлению? Вроде все по табу делал…
Несколько странный у вас код
doza_andИзучаю Питон по книге, там был пример. Я все примеры и конструкции перебираю.
# почему не используете a+=1?
py.user.nextПро range уже узнал, спасибо!
если собрался границы через константы или переменные задавать
Отредактировано Webfave (Дек. 1, 2013 06:54:42)
Офлайн