从变量名或字符串创建列表或字典

2024-06-25 07:03:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用python创建一个字典或列表。 创建字典的常规方法是test = {} 但我不想给字典命名test。 例如,我想给字典命名一个我生成的随机散列。你知道吗

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

然后我想从h.hexdigest变量创建字典。你知道吗

h.hexdigest() = {}

但这不会用我刚刚生成的哈希创建字典。你知道吗

有人知道我怎么做吗?你知道吗


Tags: 方法test列表字典update命名md5常规
2条回答

如果您能生成不以数字开头的随机散列,那么您所询问的可能是可能的。 因此,以下代码只有在生成的十六进制数字不是以数字开头时才有效

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))

这可能对你有帮助。你知道吗

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__)

相关问题 更多 >