Найти - Пользователи
Полная версия: Умножение цифр в списке через цикл
Начало » Python для новичков » Умножение цифр в списке через цикл
1 2
de_z
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 на строку с формулой. Что не так с циклом? Помогите!
FishHook
de_z
Что не так с циклом?
Вы понимаете цикл в питоне неверно, вы думаете что оно работает как в джаваскрипте, так вот нет
for i in x:
    x[i] = # ненененене
              # i - это не индекс, это [b]сам элемент[/b]
Fandal
Если я правильно тебя понял, то:
def list_function(x):
    for i in x:
        print  i*2
n = [1, 2, 3]
list_function(n)
получаем вывод:
2
4
6
de_z
Таким образом, с переменными в списках не работает так, как я написал?
FishHook
То есть не работает? Ты получил вывод i * 2, ты ровно это и делаешь
если нужно изменить список, то изменяй, читай доку python map, python list comprehensions, да и вообще хотя бы основы питона.

py.user.next
>>> def mul2(seq):
...     return (i * 2 for i in seq)
... 
>>> list(mul2([1, 2, 3]))
[2, 4, 6]
>>>
codersed
def get_list_numbers(number_list):
    print([row * row for row in number_list])
check_numbers = [1,2,3]
get_list_numbers(check_numbers)
Shaman
def list_function(x):
    for i in range(len(x)):
        x[i] *= 2
    return x
to_night
Самое простое:

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]
de_z
Всем спасибо за помощь!
Теперь увидел все многообразие решения этой задачи!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB