Уведомления

Группа в Telegram: @pythonsu

#1 Май 29, 2015 17:34:55

de_z
Зарегистрирован: 2015-05-20
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Умножение цифр в списке через цикл

def list_function(x):
i = 0
for i in x:
x[i] = x[i] * 2
return x

n = [1, 2, 3]
list_function(n)
print (n)


Получаю ошибку Out of integer на строку с формулой. Что не так с циклом? Помогите!

Отредактировано de_z (Май 29, 2015 17:35:48)

Офлайн

#2 Май 29, 2015 17:44:50

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Умножение цифр в списке через цикл

de_z
Что не так с циклом?
Вы понимаете цикл в питоне неверно, вы думаете что оно работает как в джаваскрипте, так вот нет
for i in x:
    x[i] = # ненененене
              # i - это не индекс, это [b]сам элемент[/b]



Отредактировано FishHook (Май 29, 2015 17:45:45)

Офлайн

#3 Май 29, 2015 17:45:00

Fandal
От:
Зарегистрирован: 2009-05-24
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

Умножение цифр в списке через цикл

Если я правильно тебя понял, то:

def list_function(x):
    for i in x:
        print  i*2
n = [1, 2, 3]
list_function(n)
получаем вывод:
2
4
6



Офлайн

#4 Май 29, 2015 17:56:03

de_z
Зарегистрирован: 2015-05-20
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Умножение цифр в списке через цикл

Таким образом, с переменными в списках не работает так, как я написал?

Офлайн

#5 Май 29, 2015 18:11:38

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Умножение цифр в списке через цикл

То есть не работает? Ты получил вывод i * 2, ты ровно это и делаешь
если нужно изменить список, то изменяй, читай доку python map, python list comprehensions, да и вообще хотя бы основы питона.



Офлайн

#6 Май 29, 2015 23:24:13

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

Умножение цифр в списке через цикл

>>> def mul2(seq):
...     return (i * 2 for i in seq)
... 
>>> list(mul2([1, 2, 3]))
[2, 4, 6]
>>>



Офлайн

#7 Май 29, 2015 23:47:12

codersed
Зарегистрирован: 2015-05-13
Сообщения: 9
Репутация: +  1  -
Профиль   Отправить e-mail  

Умножение цифр в списке через цикл

def get_list_numbers(number_list):
    print([row * row for row in number_list])
check_numbers = [1,2,3]
get_list_numbers(check_numbers)

Отредактировано codersed (Май 30, 2015 11:39:25)

Офлайн

#8 Май 30, 2015 00:45:01

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Умножение цифр в списке через цикл

def list_function(x):
    for i in range(len(x)):
        x[i] *= 2
    return x

Офлайн

#9 Май 30, 2015 08:38:47

to_night
От: Киев
Зарегистрирован: 2013-12-12
Сообщения: 58
Репутация: +  1  -
Профиль   Отправить e-mail  

Умножение цифр в списке через цикл

Самое простое:

In [1]: lst = [1, 2, 3]
In [2]: map(lambda x: x * 2, lst)
Out[2]: [2, 4, 6]
In [3]: [i * 2 for i in lst]
Out[3]: [2, 4, 6]

Офлайн

#10 Май 30, 2015 09:07:57

de_z
Зарегистрирован: 2015-05-20
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Умножение цифр в списке через цикл

Всем спасибо за помощь!
Теперь увидел все многообразие решения этой задачи!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version