在Python中为dict()分配多个对象

时间:2017-08-23 13:08:58

标签: python dictionary

我的问题可能也可能不是很简单。是否可以在Python中为dict()函数分配多个变量/对象? 例如,我有一个代码段 -

node_id = None
c_node = None
node_range = range(4)
nodes_memory = None

def init():
    global nodes_memory
    nodes_memory = dict()
    for node_id in node_range:
        nodes_memory[node_id] = dict()
    for c_node in node_range:
        nodes_memory[c_node] = dict()

nodes_memory node_id仅存储来自node_range的{​​{1}}的值(或来自c_node的{​​{1}}或两者都不存在)?
如果上述任何一种情况属实,我如何在node_range中存储这两个值,以便我可以在任何时间点使用nodes_memory访问它们? 在此先感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

字典是一种映射,其中每个键都映射到单个值。密钥是唯一的,不能只是一个相同的密钥。要创建" multidict",我会使用defaultdict模块中的collections

from collections import defaultdict
def init():
    nodes_memory = defaultdict(list)
    node_range = range(4)
    for node_id in node_range:
        nodes_memory[node_id].append(node_id)
    for c_node in node_range:
        nodes_memory[c_node].append(c_node)
    return nodes_memory

您可以将append中的值替换为您喜欢的任何其他值。要访问值,请使用索引表示法,就像使用常规dict一样。