如何在具有特定键的字典中添加多个值

时间:2017-12-11 17:12:04

标签: python dictionary

我想为特定键添加更多值,例如, 我的词典是FinalData = {} 它包含键值对:{'12345,70':xyz,'12345,71':pqr} 现在我想为相同的键'12345,70'添加值('abc') 我的最后一本字典变为{'12345,70':xyz,abc,'12345,71':pqr}我试图通过FinalData[key].append(value)附加第二个值,但它给了我

  

错误:AttributeError:'str'对象没有属性'append'

他们以任何方式解决这个问题,我是python的新手,请帮忙。

4 个答案:

答案 0 :(得分:2)

使用列表而不是字符串:

FinalData = {'12345,70': ['xyz'], '12345,71': ['pqr']}

这有效:

FinalData[key].append(value)

实施例

key = '12345,70'
value = 'abc'
FinalData[key].append(value)
print(FinalData)

输出:

{'12345,70': ['xyz', 'abc'], '12345,71': ['pqr']}

答案 1 :(得分:0)

通过将值存储为字符串,您可以添加新的子字符串:

s = {'12345,70':'xyz','12345,71':'pqr'}
s['12345,70'] += ",{}".format('abc')

输出:

{'12345,70': 'xyz,abc', '12345,71': 'pqr'}

答案 2 :(得分:0)

您可以将值存储为列表而不是字符串。然后,您可以轻松地添加新项目的功能:

mydict = {'12345,70':["xyz"],'12345,71':["pqr"]}

def myaddfn(key, item):
    mydict[key].append(item)

print(mydict)
myaddfn('12345,70', "abc")
print(mydict)

输出:

{'12345,70': ['xyz'], '12345,71': ['pqr']}
{'12345,70': ['xyz', 'abc'], '12345,71': ['pqr']}

答案 3 :(得分:-1)

这是Web开发中的常见情况,因此您需要使用MultiDict对象,例如http://werkzeug.pocoo.org/docs/0.13/datastructures/#werkzeug.datastructures.MultiDict下的MultiDict

或者,您可以使用defaultdict list,例如::

>>> from collections import defaultdict
>>> d = defaultdict(list)
>>> d
defaultdict(<type 'list'>, {})
>>> d['a'].append(1)
>>> d['a'].append(2)
>>> d['b'].append(3)
>>> d
defaultdict(<type 'list'>, {'a': [1, 2], 'b': [3]})
相关问题