您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在python中合并字典值列表

在python中合并字典值列表

作为单行代码,具有字典理解能力:

new = {key: value + two[key] + [three[key]] for key, value in one.iteritems()}

这将创建新列表,将from中的列表与fromone中的相应列表进行连接two,将单个值three放入临时列表中以使连接更容易。

或使用就地for更新的循环one

for key, value in one.iteritems():
    value.extend(two[key])
    value.append(three[key])

这用于使用的list.extend()列表就地更新原始列表two,并list.append()添加的单个值three

您出问题的地方:

您的第一次尝试将使用中的值创建一个新列表onetwo并将其three嵌套在其中,而不是将现有列表串联在一起。您尝试清除它只是复制了这些嵌套列表。

您的第二次尝试不起作用,因为in中的值three不是列表,因此无法串联。我为该值创建了一个新列表。

您最后一次尝试不应该list.append()生成器表达式中使用,因为您存储的是该方法返回值 ,该值始终是None(其更改v直接存储在该列表中,并且列表无需再次返回)。

第一种方法的演示:

>>> one={'a': [1, 2], 'c': [5, 6], 'b': [3, 4]}
>>> two={'a': [2.4, 3.4], 'c': [5.6, 7.6], 'b': [3.5, 4.5]}
>>> three={'a': 1.2, 'c': 3.4, 'b': 2.3}
>>> {key: value + two[key] + [three[key]] for key, value in one.iteritems()}
{'a': [1, 2, 2.4, 3.4, 1.2], 'c': [5, 6, 5.6, 7.6, 3.4], 'b': [3, 4, 3.5, 4.5, 2.3]}
python 2022/1/1 18:36:33 有245人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶