【问题标题】:How get a dictionary dynamically?如何动态获取字典?
【发布时间】:2020-10-02 20:38:49
【问题描述】:

我有一个大小为 80 的 for i in range(1,80):,我的 for 循环中有一个字典 index = {}。我希望每次我的for 循环圈添加一个等于i 的键值并键入等于一个列表的值。

我也试过这个代码:

import numpy as np

 index  = {}
 for i in range(1, 80):
      tmp = L * msk
      (r, c) = np.nonzero(tmp > 0)
      v = np.size(c)  # v equal 24
      I = np.arange(v) # I = [0,1,2,3,...,23]
      Ind = np.empty((v, 2))
      Ind[i , :] = (r[I[i]], c[I[I]])
      index = {key = I: type = Ind} 

【问题讨论】:

  • 关键必须是我不是我
  • 请显示您的预期输出。为了简单起见,不是 80 而是 10。谢谢。你想要d = {i: [] for i in range(1, 80)}吗?对这样的序列号使用 dict 有点不寻常。列表更快,更语义化。此外,如果您确实需要字典,defaultdict(list) 可能更适合您尝试做的任何事情......不过,我不确定 numpy 代码与您询问的文本有什么关系。
  • 感谢您对清单内容的解释,这对我很有帮助

标签: python python-3.x numpy dictionary


【解决方案1】:

在最后一行中,您将整个 index 引用更改为新字典。您需要向index 添加一个新密钥,而不是完全更改它。尝试将该行更改为:

index[i] = Ind

【讨论】:

  • 您的代码还有其他问题,但您没有询问其他问题,您询问了如何在每次迭代时添加到字典中。
猜你喜欢
  • 2015-03-18
  • 2021-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-19
  • 1970-01-01
相关资源
最近更新 更多