在python 3.4中为现有键添加值

时间:2014-11-30 04:46:48

标签: python dictionary

我只是希望我可以在为特定键添加多个值时获得一些帮助。 我知道如何更改值并添加新密钥及其值。我只是无法用一个键获得多个值。 我遇到的问题是我不确定添加到密钥的值是多少。是否有任何方法可以在python中为键添加值。

我正在运行3.4版

由于

我已尝试附加值,但它会出现错误,例如不可用的类型:'sl​​ice',object不可预订

1 个答案:

答案 0 :(得分:1)

目前还不完全清楚你想要做什么,但如果你只想要一个特定键的值列表,那么一个简单的方法就是使用dict.setdefault

my_dict = {}
my_dict.setdefault('key_name', []).append('value')
print(my_dict)

Out[416]: {'key_name': ['value']}

my_dict['key_name'].append('new_value')
print(my_dict)

Out[417]: {'key_name': ['value', 12]}

如果这不是您所希望的,您可以随时编写一个捕获所需行为的类,但似乎它可能是一个陷阱。 :)

class AppendDict(dict):
"""Just like dict, except it appends to existing values instead of overwriting them"""
def __setitem__(self, key, value):
    if (key in self) && (type(self[key]) is list):
        self[key].append(value)
    else:
        super(AppendDict, self).__setitem__(key, value)