ФорумПрограммированиеPython → Вопрос по циклу for

Вопрос по циклу for

  • lowfuck

    Сообщения: 20 Репутация: N Группа: Кто попало

    Spritz Фев. 24, 2011, 1:03 д.п.

    Есть например 3 переменные:
    a = 1
    b = 2
    c = 3

    Я хочу пройтись по ним циклом и изменить каждую:
    for i in (a,b,c):
        i = 5

    Но такой подход не работает. Как лучше всё это организовать или я что-то не так делаю?
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz Фев. 24, 2011, 1:07 д.п., спустя 4 минуты 6 секунд

    о, кстати, а в пайтоне есть variable variables? Ну $foo = 'bar'; $$foo = 'bar'
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz Фев. 24, 2011, 2 д.п., спустя 53 минуты 6 секунд

    lowfuck, как-то так:

    
    l = [1, 2, 3]
    for k, v in enumerate(l):
        l[k] = 5
    
    http://blog.swlogic.eu/2010/09/30/python-parametry-funkcij-napominalka/
    Спустя 177 сек.

    о, кстати, а в пайтоне есть variable variables? Ну $foo = 'bar'; $$foo = 'bar'
    http://stackoverflow.com/questions/3061/calling-a-function-from-a-string-with-the-functions-name-in-python
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz Фев. 24, 2011, 9 д.п., спустя 7 часов 21 секунду

    (a,b,c) = [5 for i in (a,b,c)];
    :)
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz Фев. 24, 2011, 11:54 д.п., спустя 2 часа 53 минуты 54 секунды

    vasa_c, крут, как же я не допер… ночь наверное потомучто была :(
    +1 в карму
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • lowfuck

    Сообщения: 20 Репутация: N Группа: Кто попало

    Spritz Фев. 24, 2011, 8:10 п.п., спустя 8 часов 15 минут 42 секунды

    vasa_c, о да, твоё кунг-фу лучше моего :) Может ещё подскажешь как лучше туда if засунуть (напр. 5 if i>0).
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz Фев. 24, 2011, 8:26 п.п., спустя 16 минут 43 секунды

    def hnya(i):
        if i > 0:
            return 5
        else:
            return -5
    
    (a,b,c) = [hnya(i) for i in (a,b,c)];

    или лямбду может можно впендюрить
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz Фев. 24, 2011, 8:39 п.п., спустя 12 минут 47 секунд

    (a,b,c) = [5 for i in (a,b,c)];

    
    (a,b,c) = [5 for i in (a,b,c) if i > 0]
    
    Спустя 93 сек.
    (a,b,c) = [5 if i > 1 else 3 for i in (a,b,c)]
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • lowfuck

    Сообщения: 20 Репутация: N Группа: Кто попало

    Spritz Фев. 24, 2011, 8:42 п.п., спустя 3 минуты 13 секунд

    Всем спасибо!

Пожалуйста, авторизуйтесь, чтобы написать комментарий!