如何访问具有不同名称的变量?

时间:2012-12-07 21:42:25

标签: python variables

如何使用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()函数正在创建一个字典,但我希望它是变量名。怎么样?

2 个答案:

答案 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]