首页 > 解决方案 > 如何使用循环将字典的特定项解压缩到变量中

问题描述

我有一些字典类型的动态项目。我想将其中一些解压缩成变量。我想知道一些使用循环的方法。

我有'self.params = {}'来存储基础和权重。可能是 10 或 20 b 和 W,这取决于类中的参数。我想把它解压成'W1','W2'.....,'b1','b2'.....我在'hidden_​​dims'中有层号

我想实现一些功能,例如遵循错误代码:

for i in range(hidden_dims):
  W(i+1) = self.params['W%s'% str(i+1)]
  b(i+1) = self.params['b%s'% str(i+1)]

然后我可以得到一些变量,如:'W1','W2'...'Wn'(and n = hidden_​​dims) and 'b1','b2'...'bn'

可以实现吗?

标签: pythondictionaryvariables

解决方案


您可以使用 global() 动态创建变量。像这样的东西:

for i in range(1, hidden_dims + 1):
    w = 'W' + str(i)
    b = 'b' + str(i)

    global()[w] = self.params[w]
    global()[b] = self.params[b]

注意:不建议尝试动态创建变量。对于您的用例,使用两个列表 W[] 和 b[] 似乎是一种更简洁的存储值的方法


推荐阅读