我是python的新手,所以我不知道这是否可行。我正在尝试从字符串列表中创建变量名列表,以便我可以为新创建的变量赋值。
我看到了另一个类似的问题,但已经有一个关键词和价值观的字典。
这是我的代码:
def handy(self):
a = raw_input('How many hands? ')
for i in range(int(a)):
h = "hand" + str(i+ 1)
self.list_of_hands.append(h)
# would like to create variable names from self.list_of_hands
# something like "hand1 = self.do_something(i)"
print h
print self.list_of_hands
鉴于一些答案,我正在添加以下评论: 我将为每个变量分配dicts。那么,我可以创建一个字典词典吗?
答案 0 :(得分:3)
为什么不用字符串作为键来构造字典?
>>> class test():
def handy(self):
a = raw_input('How many hands? ')
d = { "hand" + str(i + 1) : self.do_something(i) for i in range(int(a)) }
keys = d.keys()
keys.sort()
for x in keys:
print x, '=', d[x]
def do_something(self, i):
return "something " + str(i)
>>> test().handy()
How many hands? 4
hand1 = something 0
hand2 = something 1
hand3 = something 2
hand4 = something 3
编辑:您更新了问题,询问您是否可以将字典存储为字典中的值。是的,你可以:
>>> d = { i : { j : str(i) + str(j) for j in range(5) } for i in range(5) }
>>> d[1][2]
'12'
>>> d[4][1]
'41'
>>> d[2]
{0: '20', 1: '21', 2: '22', 3: '23', 4: '24'}
>> d[5] = { 1 : '51' }
>> d[5][1]
'51'
答案 1 :(得分:2)
如果你有多个变量只有最后一个数字(hand1
,hand2
等),你需要一个容器。
我认为字典效果最好:
self.hands = {}
self.hands[h] = self.do_something(i)
您可以轻松访问字典中的各个键:
self.hands['hand1']
答案 2 :(得分:0)
h = "hand" + str(i+ 1)
vars()[h] = do_something(i)
现在你可以调用hand1来调用do_something()