字典指向Python中的另一个字典

时间:2016-07-26 19:47:21

标签: python dictionary

假设我有一本字典dic = {k: v}。我的目标是创建另一个数据结构,该结构将指向在单个键下访问的字典的子集。

例如:dic = {1: 'a', 2: 'b', 3: 'c', 4: 'f'}。 我想要一个仅指向密钥13的指针,但是可以在单个密钥'k1'下检索,并且可以检索到密钥24在单个键'k2'下,无需进行硬拷贝。我的数据在整个申请过程中都不会改变。

我知道我可以创建另一个字典subdic = {'k1': (a, c), 'k2': (b, f)},但这需要额外的内存,对吧? 我怎么能只用某种指针做到这一点?使用软拷贝,使得值仅在原始字典dic的内存中一次。

1 个答案:

答案 0 :(得分:2)

您可以像这样创建第二个字典

dic2 = {'k1': (dic[1], dic[3])}

这样做,实际上并没有使用额外的内存(只是边缘),因为元组中的对象与原始dic中的对象相同(它们在内存中占用相同的空间)。您可以通过执行以下操作来检查它是否为真:

id(dic2['k1'][0]) == id(dic[1]) # True