使用词典的更新功能
我有一个关于内置的更新功能字典使用词典的更新功能
mydict = {1: {45:'ades'}, 2: {68:'gdes'}}
addthis = {1: {44:'paes'}}
changethis = {1: {45 : 'qwes'}
mydict.update(new)
mydict.update(changethis)
>>>mydict
{1: {45: 'qwes'}, {44: 'paes}, 2:{68: 'gdes'}}
我所熟悉的事实,更新替换掉键,它是连接到它,如果它已经存在价值的问题。然而,我想知道如何在不删除我的原始密钥1的情况下追加addthis
,然后用changethis
更新替换原始密钥1.任何帮助将不胜感激!
从评论中可以看出您想要一个列表。要做到这一点,你的地图的每个值都需要是一个列表,而不是一个单独的字典。
mydict = {1: [{45:'ades'}], 2: [{68:'gdes'}]}
然后,当你添加的东西mydict
,你需要索引到字典和更新:
addthis = {44:'paes'}
mydict[1].append(addthis)
>>>mydict
{1: [{45: 'ades'}, {44: 'paes'}], 2: [{68: 'gdes'}]}
而要改变的东西mydict
,你将需要遍历的项目列表和相应的更新:
for el in mydict[1]:
if 45 in el.keys():
el[45] = 'qwes'
break
这将导致:
>>>mydict
{1: [{45: 'qwes'}, {44: 'paes'}], 2: [{68: 'gdes'}]}
进一步澄清后,似乎你想要词典的词典:
mydict = {1: {45: 'ades'}, 2: {68: 'gdes'}}
要在字典中的一个元素添加到1
:
mydict[1][44] = 'paes'
>>>mydict
{1: [{44: 'paes', 45: 'ades'}], 2: [{68: 'gdes'}]}
您可以访问处的值使用:
mydict[1][44]
要在45
修改值:
mydict[1][45] = 'qwes'
>>>mydict
{1: {44: 'paes', 45: 'qwes'}, 2: {68: 'gdes'}}
嗯......谢谢你的帮助。有没有办法以某种方式链接列表中的元素值?这是因为如果我需要将一堆元素添加到我的键1的值列表中,我该如何知道哪一个元素是我需要的元素?例如,如果我需要将100个项目追加到列表中,我需要一个简单的方法来说出“45”,然后它为关键字45提取值。 – Luke
另一种方法是创建一个字典字典(而不是词典列表词典)。那看起来就像'{1:{45:'qwes',44:'paes'},2:{68:'gdes'}}'并且可以像'mydict [1] [45] ==' qwes''和'mydict [1] [44] =='paes''。 –
是的!这是我需要的!然而,我坚持如何将一个键的值和值的值附加到字典中,而不用清除我必须开始并替换它的任何内容。 – Luke
,如果我理解正确的你,这你为了需要具有价值的关键“1”的字典什么也是一本字典:
test_dict = {1: {45:"t"}, 2:{44:"tt"}}
new_value = {1: {44: "pae"}}
update_value = {1:{44:"tt"} }
def add_to_dict(dict, new_value):
for key, value in new_value.items():
dict[key].update(value)
# print(new_value.keys())
def update_dict(dict,new_value):
dict.update(new_value)
if _name_ == '_main_':
add_to_dict(test_dict,new_value)
print(test_dict)
update_dict(test_dict,update_value)
print(test_dict)
它将打印:
# after you add a value to the dictionary inside the dictionary
{1: {44: 'pae', 45: 't'}, 2: {44: 'tt'}}
# after you update the value
{1: {44: 'tt'}, 2: {44: 'tt'}}
在Python字典中键必须是唯一的! – Ahmad
你想要的关键1,你将访问2个不同的值?或者您将使用1访问不同的字典? – Green
嗨@Green,我想要那个钥匙1将访问两个不同的值,这是字典 – Luke