在for循环中运行变量

时间:2014-10-03 12:03:53

标签: python variables for-loop dynamic

我是Python的新手,但我用它来处理数据。我将大量数据存储为float数组:

data1
data2
data3

我想对每个数据文件运行类似的处理。我在考虑使用for循环:

for i in range(1,4):

我想将这三个数据文件乘以2,但我不确定如何继续。我想它看起来像他的:

for i in range(1,4):
     data_i=data_i*2

谢谢。

3 个答案:

答案 0 :(得分:1)

你可以创建一个二维数组,这意味着你将浮点数组放在另一个数组中。

你现在的情况如下:

data1 = [12, 2, 5]
data2 = [2, 4, 8]
data3 = [3, 0, 1]

通过执行以下操作将数组放在另一个数组中:

datax = [data1, data2, data3]

您的新情况如下:

datax = [[12, 2, 5], [2, 4, 8], [3, 0, 1]]

现在,我们可以遍历新的datax数组并对其执行元素data1data2和{{1 }}

有些事情:

data3

答案 1 :(得分:0)

您可以简单地将数据存储在例如列表

data_list = [data1, data2, data3]

for i, data in enumerate(data_list):
    some_fancy_stuff
    data_list[i] = data * 2

一些解释 - 枚举将逐字列举带有索引i的列表项,并将data_list[i]分配给变量data。您可以使用data及其索引i执行任何操作。

答案 2 :(得分:0)

您也可以使用Python理解而不是循环,这里有一个例子来说明它:

>>> a1 = [1,2,3]
>>> a2 = [4,5,6]
>>> a3 = [7,8,9]
>>> A = [a1, a2, a3]
>>>
>>> print [[x*2 for x in a] for a in A]
[[2, 4, 6], [8, 10, 12], [14, 16, 18]]
>>>

让我解释一下。

以下构造称为理解

a = [x*2 for x in X]

它从数组[ ]生成一个数组(如您所见,括号X)处理值(在示例值中乘以2)。就像我们写道:

a = []
for x in X:
    a.append(x*2)

但更简洁。 在你的情况下,我们使用了两种理解:

[x*2 for x in a]

[ [....] for a in A]

所以它和我们做的一样:

result = []
for a in A:
    for x in a:
        result.append(x*2)

但再次以更简洁的方式。

如果您询问变量名称修改,那么在不改变语言处理器的情况下不可能在Python中使用。但我想你根本不需要它。