合并具有相同键的元组

2023-12-19

如何合并具有相同键的元组

list_1 = [("AAA", [123]), ("AAA", [456]), ("AAW", [147]), ("AAW", [124])]

并将它们变成

list_2 = [("AAA", [123, 456]), ("AAW", [147, 124])]

最有效的方法是使用collections.defaultdict https://docs.python.org/3/library/collections.html#collections.defaultdict字典将数据存储为扩展列表,然后根据需要转换回元组/列表:

import collections

list_1 = [("AAA", [123]), ("AAA", [456]), ("AAW", [147]), ("AAW", [124])]

c = collections.defaultdict(list)
for a,b in list_1:
    c[a].extend(b)  # add to existing list or create a new one

list_2 = list(c.items())

result:

[('AAW', [147, 124]), ('AAA', [123, 456])]

请注意,转换后的数据最好保留为字典。再次转换为列表就失去了字典的“关键”功能。

另一方面,如果您想保留原始元组列表中“键”的顺序,除非您使用的是 python 3.6/3.7,否则您必须使用原始“键”创建一个列表(按顺序排列) ,唯一),然后从字典中重建列表。或者使用OrderedDict但你不能使用defaultdict(或使用recipe https://stackoverflow.com/questions/6190331/can-i-do-an-ordered-default-dict-in-python)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

合并具有相同键的元组 的相关文章

随机推荐

  • 如何访问 WordPress 身份验证令牌

    我们正在尝试使用 OAuth 2 0 将我们的网站链接到 Wordpresses API 希望客户能够从我们的网站进行身份验证并发布到 WordPress 我们需要接收访问令牌才能执行此操作 我们已成功连接 WordPress 以接收我们的
  • 设置类路径层次结构中的其他目录

    有两个目录 出租车 C a c 嗯 我在说目录中 c a b 当我执行 set classpath cd 时 目录 C a b 被分配给类路径变量 但我想将 C a c 分配给类路径 我怎样才能做到这一点 如果您需要将类路径设置为当前所在目
  • C++事件库[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 您能否推荐具有以下功能的轻量级跨平台事件记录 日志库 简单的界面 增量事件记录 即event 更新快
  • 更改notepad++中的注释字符

    我正在 notepad 中编辑 properties 文件 我可以使用 Cntrl K 切换块注释 但它会显示 代替 我修改 langs model xml 文件并替换 和 我重新启动了记事本 但它不起作用 有谁知道如何更改属性文件的记事本
  • onCreateOptionsMenu 何时在启用 ActionBar 的活动中发生?

    我知道菜单项将被设置为 ActionBar 中的操作图标 我想确切地知道这个 onCreateOptionsMenu 函数 它在 Activity 生命周期中何时调用 根据我的测试 即使在 onResume 之后也没有 该文档说明如下 pu
  • 如何将服务器生成的音频wav文件发送到客户端浏览器? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我在我的应用程序中使用烧瓶 我想将音频 wav 文件从服务器端发送到客户端 无论是否将 wav 文件保存在磁盘上 知道怎么做吗 您可以使用以
  • 这是 ServiceStack REST API 上的 Redis 的良好用例吗?

    我正在创建一个移动应用程序 它需要一个 API 服务后端来获取 放置每个用户的信息 我将开发网络服务服务栈 http www servicestack net 但想知道存储情况 我喜欢快速内存缓存系统的想法 例如Redis http red
  • 如何修复 Wordpress 的 WooCommerce 结帐时的无限缓冲区

    我目前遇到一个问题 在 Woocommerce 结账页面上 订单审核部分卡在无限缓冲区中 见下文 我在谷歌上搜索了很多并尝试了各种方法 但到目前为止没有任何效果 在我见过的大多数支持线程中 人们说他们已经能够在 Chrome Firefox
  • cglib - 方法拦截器和最终确定?

    我使用cglibMethodInterceptor包装服务 在每次调用服务时 它都应该打开数据会话 将调用传递给服务 最后关闭会话 但是 我注意到它在调用时行为不端Finalizer 我得到以下堆栈跟踪 java lang IllegalA
  • Tensorflow MNIST:抛出“std::bad_alloc”实例后调用终止

    我正在尝试使用默认的 MNIST 数据集在 Tensorflow 上实现卷积神经网络 from future import print function import tensorflow as tf from tensorflow exa
  • Magento 1.7 价格过滤器错误(未找到列:1054“where 子句”中的未知列“e.min_price”)

    在我的产品列表中 当我过滤价格时 出现此错误 有谁知道 如何解决这个问题 SQLSTATE 42S22 未找到列 1054 未知列 e min price 在 where 子句 中 痕迹 0 var www vhosts domain nl
  • 在 Windows 10 Professional 中安装自定义 inf 时遇到问题。 Windows 使用 OEM 驱动程序覆盖它

    我已经为自定义设备制作了签名的 USB 串行 inf 文件 并创建了一个安装程序 该安装程序成功地将驱动程序安装到 Windows 7 32 64 Windows 8 1 64 但不适用于 Windows 10 这适用于默认安装 右 使用设
  • 使用 Swiftui 我们如何创建用户表单

    我想创建一个表单 其中所有文本字段都需要从相同的对齐方式开始 如下图所示 它不从相同的对齐方式开始 名字 姓氏和电话号码所有文本字段未在单个垂直线上正确对齐 VStack HStack Text First Name TextField F
  • 更新 ATOM 条目的正确/可接受的方法

    什么是 正确 的方式来指示 ATOM 提要中的条目已更新 正确 是指符合现有规范and读者会注意到某些内容并将其标记为新的 未读的 我发现的所有规范都表明支持更新的节点 但是 当我尝试这样的事情时
  • Django 视图中长时间、缓慢的操作会导致超时。有什么办法可以让 Python 代替 AJAX 说话吗?

    我从事 Python 编程已经有一段时间了 但 DJango 和 Web 编程对我来说总体来说还是陌生的 我在 Python 视图中执行了一个很长的操作 由于我认为 local 函数需要很长时间才能返回 因此存在 HTTP 超时 公平地说
  • 并发原子选择更新

    我怎样才能使用 sqlalchemy 做这样的事情 user session query select from user if user state active session query update user set state i
  • 在 C# 中交换 32 位正整数中的位

    所以我正在尝试解决这个问题 给定一个随机的 32 位正整数 你要做的就是将第 3 4 5 位的值与第 24 25 26 位的位值交换 假设这是一个您不需要明确解决方案的问题 这里有一个提示 使用以下命令屏蔽有问题的位 做一个转变 然后OR然
  • 调用chrome.tabs.query后,得不到结果

    我正在创建 学习 Google Chrome 的扩展程序 为了调试一些代码 我插入了console log 如下 var fourmTabs new Array chrome tabs query function tabs for var
  • Javascript随机化数组,而起始位置没有元素[重复]

    这个问题在这里已经有答案了 我有一个 JavaScript 问题 我让用户输入一个名称列表 然后将其放入一个数组中 长话短说 我正在编写一种随机方法 让人们弄清楚他们将为谁购买圣诞礼物 例如 原始数组由以下名称组成 Alex Joel Li
  • 合并具有相同键的元组

    如何合并具有相同键的元组 list 1 AAA 123 AAA 456 AAW 147 AAW 124 并将它们变成 list 2 AAA 123 456 AAW 147 124 最有效的方法是使用collections defaultdi