从变量名称或字符串

时间:2018-05-18 18:28:01

标签: python python-3.x dictionary

我正在尝试在python中创建字典或列表。 创建字典的常规方法是test = {} 但我不想命名字典test。 例如,我想将字典命名为我生成的随机哈希。

bagel = "bagels" 
h = hashlib.md5()
h.update(bagel.encode('utf-8'))
print(h.hexdigest())

然后我想从h.hexdigest变量创建字典。

h.hexdigest() = {}

但是这不会用我刚生成的哈希创建字典。

有谁知道我该怎么做?

2 个答案:

答案 0 :(得分:1)

如果您可以生成不以数字开头的随机哈希,那么您可能会问这些问题。 因此,以下代码仅在生成的十六进制数字不以数字

开头时才有效
bagel = "bagels" 
h = hashlib.md5()
h.update(bagel.encode('utf-8'))
temp = h.hexdigest()
exec("{0} = dict()".format(temp))

所以,为了使它适用于任何事情,我建议你添加一个常量字符串,如下所示

bagel = "bagels" 
h = hashlib.md5()
h.update(bagel.encode('utf-8'))
temp = h.hexdigest()
exec("const_{0} = dict()".format(temp))

答案 1 :(得分:0)

这对你有帮助。

import hashlib
bagel = "bagels"
h = hashlib.md5()
h.update(bagel.encode('utf-8'))
temp = h.hexdigest()

class YClass( object ):
    pass

y= YClass()
setattr( y, temp, {'greet': 'Hello'} )


print(y.__dict__)