通过添加值而非替换值更新一个字典。

1 投票
6 回答
7673 浏览
提问于 2025-04-17 00:24

我有很多像这样的字典:

dict1 = {1:[1,2,3],2:[2,3,4]}
dict2 = {2:[3,4,5],3:[4,5,6]}

我需要得到

dict = {1:[1,2,3],2:[2,3,4,3,4,5],3:[4,5,6]}
#                       ^
#                       | order is unimportant

有什么好的方法来实现这个吗?

6 个回答

1

在编程中,有时候我们需要让程序做一些特定的事情,比如在特定的条件下执行某段代码。这个过程就像给程序下达命令,让它按照我们的要求去行动。

比如说,如果你想让程序在某个条件成立时才执行某段代码,你可以使用“如果”语句。这就像是在说:“如果发生了某件事,那么就去做另一件事。”这样可以让程序更加灵活,能够根据不同的情况做出不同的反应。

还有一种情况是,当你需要重复执行某段代码时,可以使用“循环”。想象一下,你在做一件事情,比如数数,你会一直数下去,直到达到某个数字。循环就是让程序重复执行某段代码,直到满足某个条件为止。

总之,编程就像是在和计算机沟通,我们通过一些简单的指令,让它按照我们的想法去工作。理解这些基本概念后,你就能更好地控制程序的行为了。

dict1 = {1:[1,2,3],2:[2,3,4]}
dict2 = {2:[3,4,5],3:[4,5,6]}

dicts = [dict1, dict2]
new_dict = {}

for d in dicts:
  for k, v in d.iteritems():
    if new_dict.has_key(k):
      new_dict[k] = new_dict[k] + v
    else:
      new_dict[k] = v
1

遍历dict2里的每一个键;如果在dict1中也找到了相同的键,就把两个列表合并在一起,然后放到dict1里;如果没有找到相同的键,就直接把这个键放到dict1里。

7

简单地遍历一个扩展的列表...

for key, value in dict2.iteritems():
    dict1.setdefault(key, []).extend(value)

撰写回答