【问题标题】:Python: Adding constant to iteration variable in for loopPython:在for循环中向迭代变量添加常量
【发布时间】:2020-05-04 17:01:11
【问题描述】:

在执行 for 循环时,我是否可以向迭代变量添加常量? 这就是我想要实现的目标:


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

输出应该是:

109
102
107
104
101
108
103
105

我知道我可以在打印之前添加常量。但很好奇在迭代期间是否有任何要添加的内容。

【问题讨论】:

  • for i in [100 + x for x in [9,2,7,4,1,8,3,5]]:for i in [9,2,7,4,1,8,3,5]: i+= 100
  • 我们可以使用numpy array吗?
  • 也许你可以使用numpy arraysa=numpy.array([9,2,7,4,1,8,3,5]) for i in a+100: print(i) 将完成这项工作。

标签: python loops for-loop iteration


【解决方案1】:

不,但您可以在每个值被分配给迭代变量之前添加一个常量。

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

您也可能滥用属性,因为 for 循环执行的分配与 = 非常相似。

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】:

    您可以从将数据分配给列表项开始,然后如上所述遍历它。将来您将开始使用常量或需要不断更改数据。或者,如果您有许多列表,并且您可以尝试同时为所有列表执行此操作,这将对您有所帮助:

    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)
    

    【讨论】:

      【解决方案3】:
      for i in [9,2,7,4,1,8,3,5]:
        print(i+100)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-23
        • 1970-01-01
        • 1970-01-01
        • 2022-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-09
        相关资源
        最近更新 更多