for循环和列表 - 语法

时间:2014-03-31 08:11:16

标签: python

我在python中遇到了一些语法问题。

下面是一个简单的例子:

而不是(1):

value = []
value.append(int(self.val1.GetValue()))
value.append(int(self.val2.GetValue()))
value.append(int(self.val3.GetValue()))
value.append(int(self.val4.GetValue()))

我想要那样做(2):

value = []
for i in range(4):
    value.append(int(self.val + (i + 1) + .GetValue()))

但是你看,这是一个无效的语法。

问题是我必须在上面的循环中纠正以获得与(1)

中相同的故事

1 个答案:

答案 0 :(得分:2)

value = [int(v.GetValue()) for v in (self.val1, self.val2, self.val3, self.val4)]

可能是最干净的方式。

更短的是使用getattr(self, 'val%d' % i).GetValue()的东西,但那很难看。