博客
关于我
Python sum 二维列表中具有相同第一个值的元素
阅读量:805 次
发布时间: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/

    你可能感兴趣的文章
    Python UI自动化测试集成UnitTest
    查看>>
    Python UI自动化测试集成UnitTest
    查看>>
    python unicode-escape
    查看>>
    Python unittest mock:是否可以在测试时模拟方法默认参数的值?
    查看>>
    Python unittest单元测试框架 TestSuite测试套件
    查看>>
    PYTHON调离线语音合成并实时播放
    查看>>
    python unittest高级特性!
    查看>>
    Python unittest:如何将标准输出消息临时重定向到缓冲区并测试其内容?
    查看>>
    Python urllib/Requests下载文件失败,但浏览器下载失败
    查看>>
    Python urllib2 文件上传问题
    查看>>
    Python urllib2.open 连接由对等错误重置
    查看>>
    python urllib2详解及实例
    查看>>
    Python url请求提示certificate verify failed unable to get local issuer certificate
    查看>>
    Python UTC 日期时间对象的 ISO 格式不包括 Z(祖鲁语或零偏移)
    查看>>
    python valueerror object2_python遇到错误记录
    查看>>
    python vars的作用
    查看>>
    Python vcrpy库:HTTP请求记录和重放
    查看>>
    Python virtualenv
    查看>>
    python vue3实现大文件分段续传(断点续传)--带暂停和继续功能
    查看>>
    Python WebDriver如何打印整个页面源(html)
    查看>>