如何使用 for 循环在 python 3.2 中用数字增加变量名?
p 是玩家,可以是 1 或 2。p1 和 p2 是每个玩家的不同符号。
p = 1
p1 = x
p2 = i
for c in range(1,3):
input('Player {} ({}), ...? '.format(p,(locals()['p'+str(p)])))
这个 locals() 函数正在制作一个字典,但我希望它是变量名。如何?
Data is stored in data structures, not variable names. Use a dict, list or any other data structure.
players = []
for c in range(1,3):
pl = input('Player P{} ...? '.format(c)
players.append(pl)
print players[2]
您可以使用一个简单的类来容纳玩家。这是一个示例,可让您按字面意思请求玩家,或传递可变数字。
class Players:
def __init__(self, players):
self.__dict__ = {"p{}".format(i+1):p for i,p in enumerate(players)}
def __getitem__(self, item):
return self.__dict__["p{}".format(item)]
p = Players(["player 1 obj", "player 2 obj"])
# equivalent
print p.p2
print p[2]