Python 中有“multimap”实现吗?

2024-01-08

我是 Python 新手,并且熟悉以下的实现多重地图 http://en.wikipedia.org/wiki/Multimap in other http://www.sgi.com/tech/stl/Multimap.html 语言 http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/Multimap.html。 Python 是否内置了这样的数据结构,或者在常用的库中提供了这样的数据结构?

为了说明“多重映射”的含义:

a = multidict()
a[1] = 'a'
a[1] = 'b'
a[2] = 'c'

print(a[1])  # prints: ['a', 'b']
print(a[2])  # prints: ['c']

标准库中不存在这样的东西。您可以使用defaultdict http://docs.python.org/3.1/library/collections.html#collections.defaultdict though:

>>> from collections import defaultdict
>>> md = defaultdict(list)
>>> md[1].append('a')
>>> md[1].append('b')
>>> md[2].append('c')
>>> md[1]
['a', 'b']
>>> md[2]
['c']

(代替list你可能想使用set,在这种情况下你会打电话.add代替.append.)


作为旁白: 看看你写的这两行:

a[1] = 'a'
a[1] = 'b'

这似乎表明您想要表达a[1]等于两个不同的值。这对于字典来说是不可能的,因为它们的键是唯一的,并且每个键都与单个值相关联。你什么can然而,要做的是一一提取与给定键关联的列表内的所有值。您可以使用iter http://docs.python.org/3.1/library/functions.html#iter随后连续调用next http://docs.python.org/3.1/library/functions.html#next为了那个原因。或者你可以只使用两个循环:

>>> for k, v in md.items():
...     for w in v:
...         print("md[%d] = '%s'" % (k, w))
... 
md[1] = 'a'
md[1] = 'b'
md[2] = 'c'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 中有“multimap”实现吗? 的相关文章

随机推荐

  • Json 架构文件不会在 BigQuery Python API 中执行

    我在使用 Bigquery Python API 时遇到问题 这是我执行脚本时的堆栈跟踪 Traceback most recent call last File createTable py line 17 in
  • 当目标(后端)应用程序在同一 EC2 的多个端口上运行时的 AWS ELB

    我有 2 个相同 Web 应用程序的实例在端口 8080 和 8081 上运行 我需要使用 ALB CLB 进行负载平衡 这在旧的 apache Web 服务器中曾经是一件简单的事情 要求是对下面的实例进行负载平衡 实例 1 Web 应用程
  • 在图像上使用文本塑造形状

    所以我想使用 CSS 在图像上放置一个三角形 确切地说是一个包含一些文本的三角形 像这样的事情 https sketch io render sk 11fa7e2aeba09cb08372f831f84d9af2 jpeg https sk
  • 在React JS中实现状态变化时的过渡效果

    我的 React 页面上有一张图像 当状态更新为新图像时我想执行以下过渡效果 原始图像应该放大和淡出 新图像还应该放大和淡入 效果应该类似于穿过墙壁到达新场景 我怎样才能在 React 中做到这一点 正如 pgsandstrom 提到的 反
  • 使
  • 元素拉伸得比包含的
  • 目前 我正在开发一个工作布局 但我对动态下拉菜单有点困惑 我在 li 元素中使用子 ul 该元素将显示导航链接的子项 但上面的 li 因此是主要的 您将鼠标悬停在其上以查看子项 延伸到 ul 的长度 当然是由其中的 li 元素的宽度定义的
  • 如何使用KeyEventDispatcher

    我一直在尝试制作一个 Pong 克隆作为初学者的项目 但我遇到了障碍 我已经设法达到键盘支持的目的 但是键盘重复延迟开始出现 我还没有找到任何可用的方法来使用 KeyEventDispatcher 它甚至不会启动dispatchKeyEve
  • 使用 boto3 列出 100 多个堆栈

    我们需要列出所有处于 CREATE COMPLETE 状态的堆栈 在我们的 AWS 账户中 我们有超过 400 个这样的堆栈 我们为此编写了以下代码 stack session session client cloudformation l
  • 正向回顾与非捕获组:不同的行为

    我使用 python 正则表达式 remodule 在我的代码中并注意到在这些情况下的不同行为 re findall r s a z a xyz b abc non capturing group results in a xyz b ab
  • QT/C++ - 从不同的类访问 MainWindow UI

    我是 C 和 Qt 的初学者 所以这也许是微不足道的 当然感觉应该很简单 但我已经寻找答案几个小时了 但找不到解决方案 我正在制作一个简单的棋盘游戏 其中 MainWindow 的 ui 用 QtDesigner 制作 包含游戏板的画布 Q
  • 如何向列表添加多种数据类型

    我的清单如下 var serie line new name series name data new List
  • 函数构造函数与函数语句

    today 我读过我们有一种通过函数构造函数声明函数的方法 http www tutorialspoint com javascript javascript function constructors htm 但我从未见过使用的实际实现F
  • 敲除无法处理绑定“foreach”

    我是 Knockout 的新手 我正在构建一个实际上是大型计算器的应用程序 到目前为止 我在一个页面上运行了两个淘汰赛实例 一个实例工作得很好 但另一个实例完全损坏并且似乎根本无法注册 下面是我的 Javascript fetchYear
  • 使用 Springfox 在 Swagger UI 文档中添加标头参数

    我想在我的 Rest 服务的自动生成的 swagger ui 文档中添加一个标头参数字段 我使用 Spring 和 Springfox public ResponseEntity
  • 在 Objective-C 中将小数转换为分数?

    我试图将小数点后的所有内容显示为分数 找不到关于 Objective c 的太多关于如何实现这一点的信息 我在用double对于我的变量格式 不确定这是否重要 这就是我格式化答案的输出的方式 theTextField setText NSS
  • Rails 4 - 如何自动检测用户的位置并将其显示在网络应用程序上?

    我目前有一个正在运行的应用程序 我希望 Rails 通过 IP 地址检测访问者的位置 并在我的网站主页上显示城市和州 例如 它将显示 Hello Name from City State 访客无需输入任何内容 我知道 GeoIP 和地理编码
  • R中将长列表分成指定长度的短列表

    这与之前的一个问题密切相关here https stackoverflow com questions 45663125 divide long list into shorter lists in r 然而我需要一些稍微不同的东西 我有一
  • ASP.NET MVC - 将 JSON DateTime 传递到控制器而不映射到控制器参数

    我正在使用 jQuery 日历来显示事件 该日历旨在从服务器提取数据 在初始化时 日历会触发 AJAX 请求以获取事件对象数组 json 编码 到目前为止一切都很好 但是 此请求包含 JSON 编码的日期和时间 至少我的实现是这样 代码如下
  • 反应式形式不接收默认输入值

    我正在使用 Angular 并且有一个用于编辑项目的反应形式 当我打开组件进行编辑时 输入会正确加载对象的值 但如果我不单击输入并更改值 则反应形式的值将为空 我的代码在这里
  • Go 支持易失性/非易失性变量吗?

    我是这门语言的新手 所以请耐心等待 我很好奇 GO 如何处理线程可用的数据存储 从某种意义上说 非局部变量也可以是非易失性的 例如在 Java 中 GO 有通道的概念 从本质上讲 线程间通信意味着它绕过处理器缓存 直接读 写堆 另外 在 g
  • Python 中有“multimap”实现吗?

    我是 Python 新手 并且熟悉以下的实现多重地图 http en wikipedia org wiki Multimap in other http www sgi com tech stl Multimap html 语言 http