给定python中的一个_列表和一个b_列表,我想合并它们,这样结果就是c_列表.

在下面的示例中,只希望合并具有与"code"键匹配的"a"的元素.

a_list = [{'code': 'A', 'foo_sum': 1}, {'code': 'B', 'foo_sum': 2}]
b_list = [{'code': 'A', 'bar_sum': 3}]

c_list = [{'code': 'A', 'foo_sum': 1, 'bar_sum': 3}, {'code': 'B', 'foo_sum': 2}]

我想使用numpy,但无法使用它,因为它不一定与元素长度和顺序匹配.

我试图在迭代过程中确定这一点,但未能实现,使其成为c,因为局部变量在理解符号中不可用.

for a in b_list:
    if any(b["code"] == a["code"] for i, b in enumerate(b_list):
        # want to use i variable, but not dified.
        a["bar_sum"] = b_list[i]["code"]

推荐答案

另一个解决方案:

a_list = [{"code": "A", "foo_sum": 1}, {"code": "B", "foo_sum": 2}]
b_list = [{"code": "A", "bar_sum": 3}]


out = {}
for d in a_list + b_list:
    out[d["code"]] = {**out.get(d["code"], {}), **d}

print(list(out.values()))

输出:

[{"code": "A", "foo_sum": 1, "bar_sum": 3}, {"code": "B", "foo_sum": 2}]

Python相关问答推荐

Pandas 在最近的日期合并,考虑到破产

Odoo 14 hr. emergency.public内的二进制字段

当使用keras.utils.Image_dataset_from_directory仅加载测试数据集时,结果不同

运行终端命令时出现问题:pip start anonymous"

如何更改分组条形图中条形图的 colored颜色 ?

如何将多进程池声明为变量并将其导入到另一个Python文件

SQLAlchemy Like ALL ORM analog

Pandas—在数据透视表中占总数的百分比

无法在Docker内部运行Python的Matlab SDK模块,但本地没有问题

Django RawSQL注释字段

合并帧,但不按合并键排序

lityter不让我输入左边的方括号,'

Gunicorn无法启动Flask应用,因为无法将应用解析为属性名或函数调用.'"'' "

BeautifulSoup-Screper有时运行得很好,很健壮--但有时它失败了::可能这里需要一些更多的异常处理?

Seaborn散点图使用多个不同的标记而不是点

为什么Visual Studio Code说我的代码在使用Pandas concat函数后无法访问?

Numpy`astype(Int)`给出`np.int64`而不是`int`-怎么办?

多个布尔条件的`jax.lax.cond`等效项

使用元组扩展字典的产品挑战

Django查询集-排除True值