Python: добавление константы к переменной итерации в цикле for - PullRequest
2 голосов
/ 17 января 2020

Можно ли в любом случае добавить константу в переменную итерации при выполнении для l oop? Вот чего я пытаюсь добиться:


for i += 100 in [9,2,7,4,1,8,3,5]:
  print(i)

Вывод должен быть:

109
102
107
104
101
108
103
105

Я понимаю, что могу добавить константу прямо перед печатью. Но было любопытно, есть ли что-нибудь добавить во время итерации.

Ответы [ 3 ]

2 голосов
/ 17 января 2020

Нет, но вы можете добавить константу к каждому значению просто за до того, как будет присвоено переменной итерации.

for i in (x + 100 for x in [9, 2, 7, 4, 1, 8, 3, 5])
    ...

Вы также можете злоупотреблять свойством, поскольку for l oop выполняет назначения так же, как =.

class A:
    def __init__(self, incr):
        self.incr = incr

    @property
    def x(self):
        return self._x + self.incr

    @x.setter
    def x(self, v):
        self._x = v


i = A(200)
for i.x in [1,2,3]:
    print(i.x)
2 голосов
/ 17 января 2020
for i in [9,2,7,4,1,8,3,5]:
  print(i+100)
0 голосов
/ 17 января 2020

Вы можете начать с назначения ваших данных элементу списка, а затем выполнить итерацию по ним, как указано выше. Это произойдет в будущем, так как вы начнете использовать константы или вам придется постоянно изменять данные. Или это поможет вам, если у вас будет много списков, и вы можете попытаться сделать это для всех них одновременно:

list1 = [1,2,3,4,5,6,7,8,9]
list2 = [5,4,3,2,1]

for i in list1:
    print(100 + i)

for i in list2:
    print(200+ i)
...