如何添加到python字典而不替换

jsn*_*bs2 5 python dictionary key python-2.7

category1[name]=(number)然而,我当前的代码是,如果出现相同的名称,字典中的值将被新数字替换,我将如何做到这一点,而不是替换值,而是保留原始值并添加新值,给出现在关键的两个值,谢谢。

Wil*_*son 4

您必须使字典指向列表而不是数字,例如,如果类别有两个数字cat1

categories["cat1"] = [21, 78]
Run Code Online (Sandbox Code Playgroud)

为了确保将新号码添加到列表中而不是替换它们,请在添加之前先检查它是否在其中:

cat_val = # Some value
if cat_key in categories:
    categories[cat_key].append(cat_val)
else:
    # Initialise it to a list containing one item
    categories[cat_key] = [cat_val]
Run Code Online (Sandbox Code Playgroud)

要访问这些值,您只需使用which ,如果有一个值为 12 的键,并且该键有两个值,categories[cat_key]则会返回。[12][12, 95]

请注意,如果您不想存储重复的键,您可以使用集合而不是列表:

cat_val = # Some value
if cat_key in categories:
    categories[cat_key].add(cat_val)
else:
    # Initialise it to a set containing one item
    categories[cat_key] = set(cat_val)
Run Code Online (Sandbox Code Playgroud)