2017-08-01 131 views
0
import random 

a = random.randint(0,7) 
b = random.randint(0,7) 
c = random.randint(0,7) 
d = random.randint(0,7) 
... 

我怎么能更有效地声明这些变量,因为我希望他们是随机的?声明多个变量与随机值

+1

你有什么问题?也许你应该使用一个列表和一个循环,而不是声明多个变量。 – Barmar

+0

为什么不是数组? –

+0

我不使用数组,因为我只需要2个变量,但是我只是出于好奇而问这个问题! –

回答

3
x, y, z = (random.randint(0, 7) for x in range(3)) 

这生成一个3个随机整数的元组,并将它们分配给x,y和z。

1

如果你想要的是为了节省一些打字,你可以使用一个发电机

In [2]: (a,b,c,d) = (random.randint(0,7) for x in range(4)) 

In [3]: a 
Out[3]: 1 

In [4]: b 
Out[4]: 7 

现在,如果你也想被动态创建的变量,你可以使用__dict__

In [21]: import __main__ 

In [22]: for v in range (ord('a'), ord('z')): 
    ...:  __main__.__dict__[chr(v)] = random.randint (0,7) 

In [25]: x 
Out[25]: 5 

In [26]: y 
Out[26]: 3 

In [27]: q 
Out[27]: 2 

如果是这样的话,我宁愿用一个实际的字典来存储值,用字母作为键,而不是为它们创建变量。

而且,当然,如果您使用的是类,则使用self.__dict__而不是__main__