0

我想使用一些类似于以下实际工作的代码:

P = 20
n = 1
for x in range(1, P+1):
    Ax = n #Hoping that you can name the variable from the current element in the range
    n = n+1

我想制作变量 A1, A2, A3....A20 在这个例子中它们的值是 1, 2, 3...20...

这有可能吗,它需要什么编码?

干杯

4

3 回答 3

2

你实际上并不想这样做。相反,你想要这样的东西:

P = 20
n = 1
A = []        # Or `A = list()`
for x in range(1, P+1):
    A.append(n)
    n += 1

然后,而不是A0,你做A[0],而不是A5你做A[5]

是 Python 3.x 列表文档(我假设您使用的是 Python 3.x,因为使用range而不是xrange.

另外,据我了解,您的代码可能是这样的:

P = 20
A = []
for x in range(1, P+1):
    A.append(x)

或这个:

P = 20
A = [i for i in range(1, P+1)]

(请参阅列表推导的文档,这是 Python 的一个非常有用的功能。)

甚至:

P = 20
A = list(range(1, P+1))
于 2013-10-12T13:44:37.740 回答
1

不要尝试动态命名变量。疯狂的谎言就是这样。

相反,利用 python 的数据结构来做你想做的事。在大多数情况下,人们真的想使用 adict或 a list

a = {} 

for x in range(1,21):
    a[x] = x**2


b = []

for x in range(1,21):
    b.append(x**2)

您会感觉到何时要使用其中一个。例如,在上面如果我需要快速查找给定整数的平方,我会使用dict. 如果我只需要对 1 到 20 之间的正方形集合做一些事情,那就是我使用list.

微不足道的例子,但这可以根据您的需要进行扩展。任何可散列的数据类型都可以是字典中的键,因此您不再受限于用笨重的字母和数字命名变量 - 任何对象都可以!

于 2013-10-12T13:58:19.760 回答
0

我几乎同意你迄今为止得到的所有答案和评论: 99.99% 的时间,你不想这样做。这是危险的,丑陋的和坏的。

但是有一种方法可以做到这一点,使用exec

P = 20
n = 1
for x in range(1, P+1):
    exec("A{} = n".format(x))
    n = n+1

同样,您可能不应该使用它。

于 2013-10-12T14:15:03.200 回答