2024-06-16 14:45:10 发布
网友
我是一个新手,正在尝试如何完成以下任务:
我有以下格式的以用户命名的dict:
<user>_hx
我想用如下函数访问它们:
def foo(user, other_stuff): user_hx[key]
……等等
我试图用%访问,如下所示:
def foo(user, other_stuff): %r_hx %user[key]
但很明显我知道这是行不通的
再见
我认为您要问的是如何基于表示变量名称的字符串访问变量。Python让这变得非常简单:
globals()['%s_hx' % user]
会给你变量<user>_hx,所以你只需要
globals()['%s_hx' % user][key]
(我不确定您是应该使用globals()还是locals();这将取决于变量的定义方式以及您试图从何处访问它们)
globals()
locals()
也就是说,可能有一个更简单/更干净的方法来做你正在做的事情。例如,你有没有考虑过把所有这些字典放在一个“主”字典里,这样你就可以把它们传给别人,也可以直接访问它们
def foo(user,other_stuff): fname = "%s_hx"%user[key] #not sure where key is comming from... but would result in something like "bob_hx" with open(fname) as f: print f.read()
也许吧?/
不要将名称用作变量。您可以将您的词典集合放入另一个顶级词典中,并将这些名称作为键
users = { "user1_hx": {"name": "User 1"}, "user2_hx": {"name": "User 2"), }
等等
然后访问:
realname = users["%s_hx" % name]["name"]
我认为您要问的是如何基于表示变量名称的字符串访问变量。Python让这变得非常简单:
会给你变量
<user>_hx
,所以你只需要(我不确定您是应该使用
globals()
还是locals()
;这将取决于变量的定义方式以及您试图从何处访问它们)也就是说,可能有一个更简单/更干净的方法来做你正在做的事情。例如,你有没有考虑过把所有这些字典放在一个“主”字典里,这样你就可以把它们传给别人,也可以直接访问它们
也许吧?/
不要将名称用作变量。您可以将您的词典集合放入另一个顶级词典中,并将这些名称作为键
等等
然后访问:
等等
相关问题 更多 >
编程相关推荐