我想使用一些类似于实际工作的代码:
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 ...... ...
这有可能吗,它需要什么编码?
干杯
答案 0 :(得分: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]
。
Here是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)]
(请参阅list comprehensions的文档,这是Python的一个非常有用的功能。)
甚至:
P = 20
A = list(range(1, P+1))
答案 1 :(得分:1)
不要尝试动态命名变量。这就是疯狂。
相反,利用python的数据结构来做你想要的。在大多数情况下,人们确实希望使用dict
或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
时。
琐碎的例子,但这可以根据你的需要进行扩展。任何可清洗数据类型都可以是字典中的键,因此您不再受限于用笨重的字母和数字命名变量 - 任何对象都可以!
答案 2 :(得分:0)
我几乎同意你到目前为止所得到的所有答案和评论: 99.99%的时间,你不想这样做。这是危险的,丑陋的和坏的。
但是有一种方法可以使用exec
:
P = 20
n = 1
for x in range(1, P+1):
exec("A{} = n".format(x))
n = n+1
同样,你可能不应该使用它。