当前位置: 首页 > 面试题库 >

当值是列表时交换字典键和值

郑理
2023-03-14
问题内容

区别在于,我的值是列表,而不仅仅是单个值。

因此,我想转:

In [120]: swapdict = dict(foo=['a', 'b'], bar=['c', 'd'])

In [121]: swapdict
Out[121]: {'bar': ['c', 'd'], 'foo': ['a', 'b']}

变成:

{'a': 'foo', 'b': 'foo', 'c': 'bar', 'd': 'bar'}

假设我很高兴自己的价值观是独一无二的。


问题答案:

您可以使用字典理解和.items()方法。

In []: {k: oldk for oldk, oldv in swapdict.items() for k in oldv}
Out[]: {'a': 'foo', 'b': 'foo', 'c': 'bar', 'd': 'bar'}


 类似资料:
  • 键值列表 图 字典 到目前还没有讲到任何关联性数据结构,即那种可以将一个或几个值关联到一个key上。 不同语言有不同的叫法,如字典,哈希,关联数组,图,等等。 Elixir中有两种主要的关联性结构:键值列表(keyword list)和图(map)。 7.1-键值列表 在很多函数式语言中,常用二元元组的列表来表示关联性数据结构。在Elixir中也是这样。 当我们有了一个元组(不一定仅有两个元素的元

  • 问题内容: 我收到一个字典作为输入,并想返回一个字典,其键将是输入的值,而其值将是对应的输入键。价值观是独一无二的。 例如,说我的输入是: 我希望我的输出是: 为了澄清,我希望我的结果等于以下内容: 有什么精巧的Pythonic方式可以做到这一点? 问题答案: Python 2: Python 3(感谢@erik):

  • 问题内容: 我有这种形式的字典清单: 我想像这样通过列表中的每个元素通过键求和: 我尝试过的是以下内容: 但它仍然不起作用。 问题答案: 您想要的是集合类型。集合上的Python文档最能描述它,但是从本质上讲a是一种特殊的字典,其中所有值都是整数。您可以传递任何密钥(包括不存在的密钥)并将其添加。例如: 编辑:@timgeb提供了此答案的一种变体,该变体在对象上本地使用了该方法。我建议将其作为此处

  • 如何将包含key:pair值(如{Hello:3,Bye:4})的字典转换为两个不同的列表?一个用于键,一个用于值? 谢谢

  • 问题内容: 我有一个字典列表和每个字典的key(比方说)“型”,这可以有值,等我的目标是过滤掉这些字典到同一个字典列表,但只有一个的那些某些“类型”。我想我真的很在理解问题。 因此,示例列表如下所示: 我有一个键值列表。举例来说: 预期的结果列表如下所示: 我知道我可以用一组for循环来做到这一点。我知道必须有一个更简单的方法。我发现此问题有很多不同的风格,但没有一个完全符合要求并回答了这个问题。

  • 问题内容: 我有以下词典列表: 我想对每个求和并在字典列表中得到以下结果: 问题答案: from collections import defaultdict 它产生: 要将其转换为词典列表: 结果: