我想为特定键添加更多值,例如,
我的词典是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的新手,请帮忙。
答案 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]})