如何使用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()函数正在创建一个字典,但我希望它是变量名。怎么样?
答案 0 :(得分:2)
数据存储在数据结构中,而不是变量名称中。使用字典,列表或任何其他数据结构。
players = []
for c in range(1,3):
pl = input('Player P{} ...? '.format(c)
players.append(pl)
print players[2]
答案 1 :(得分:0)
你可以使用一个简单的类来容纳玩家。这是一个允许您按字面意思或传递可变数字来请求玩家的示例。
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]