博客
关于我
Python sum 二维列表中具有相同第一个值的元素
阅读量:798 次
发布时间:2023-03-06

本文共 1010 字,大约阅读时间需要 3 分钟。

Python处理二维列表

在处理二维列表时,特别是当我们需要累加具有相同第一个值的元素时,字典(dict)是一个非常有效的数据结构。以下是一个Python实现的解决方案。

代码实现

def sum_elements(arrays):    sum_dict = {}    for array in arrays:        for element in array:            key = element[0]            value = element[1]            if key in sum_dict:                sum_dict[key] += value            else:                sum_dict[key] = value    return list(sum_dict.items())

测试用例

arrays = [[[1, 2], [3, 4]], [[2, 3], [1, 5]], [[1, 6]]]print(sum_elements(arrays))

输出结果

[(1, 8), (2, 5), (3, 4)]

解决方案说明

  • 字典的使用

    我们使用字典来存储每个具有相同第一个值的元素的累积和。字典的键是二维列表中每个子列表的第一个元素,值是该元素的累积和。

  • 遍历二维列表

    我们首先遍历输入的二维列表 arrays。对于每个子列表中的每个元素,提取其第一个值作为键,第二个值作为累积和。

  • 累加逻辑

    • 如果键(第一个值)已经存在于字典中,则将当前元素的值累加到对应的键值上。
    • 如果键不存在,则将键值对添加到字典中,并初始化值为当前元素的值。
  • 返回结果

    最终,函数返回一个包含所有键值对的列表。每个键值对包含具有相同第一个值的元素的累积和。

  • 测试结果解释

    在测试用例中,输入的二维列表 arrays 包含以下子列表:

    • [1, 2]:表示数字1出现了2次
    • [3, 4]:表示数字3出现了4次
    • [2, 3]:表示数字2出现了3次
    • [1, 5]:表示数字1出现了5次
    • [1, 6]:表示数字1出现了6次

    通过函数 sum_elements 处理后,返回结果如下:

    • 数字1的总和:2 + 5 + 6 = 13
    • 数字2的总和:3
    • 数字3的总和:4

    最终结果为 [(1, 13), (2, 3), (3, 4)]

    转载地址:http://yeafk.baihongyu.com/

    你可能感兴趣的文章
    PyQ5学习笔记——使用内部槽函数关闭窗口
    查看>>
    PyQ5学习笔记——使用自定义槽函数关闭窗口
    查看>>
    PyQt MimeData 文件名
    查看>>
    PyQt QML Material Design 按钮背景不会改变
    查看>>
    PyQt QString转成python stirng
    查看>>
    PyQt QToolButton在焦点时不更新图标
    查看>>
    PyQt 正确使用 emit() 和 pyqtSignal()
    查看>>
    PyQT-将文件复制到剪贴板
    查看>>
    PyQt4, class:mouseButtons用法
    查看>>
    PyQt5 - QThread:在线程仍在运行时被销毁
    查看>>
    PyQt5 TabWidget选项卡BarClicked TypeError:本机Qt信号不可调用
    查看>>
    PyQt5 按钮运行功能和更新 LCD
    查看>>
    pyqt5 获取Qlabel中的图片并对其进行处理(包括Qimage转换为Mat)
    查看>>
    PyQt5:如何安装/运行 Qt 设计器
    查看>>
    PyQt5——pyqtgraph绘图大招
    查看>>
    PyQt5——多窗口之间数据处理
    查看>>
    PyQt5——多线程、信号与槽
    查看>>
    PyQt5——开发地图软件
    查看>>
    PyQt5——装饰器信号与槽
    查看>>
    PyQt5——软件密码登陆跳转主界面
    查看>>