【问题标题】:Swap dictionary keys and values when values are lists当值是列表时交换字典键和值
【发布时间】:2015-10-18 21:31:03
【问题描述】:

类似于this questionthis question,我想交换字典中的键和值。

不同之处在于,我的值是列表,而不仅仅是单个值。

因此,我想转:

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'}

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

【问题讨论】:

  • {k: oldk for oldk, oldv in swapdict.items() for k in oldv} - 我还没有测试过,但我认为它会工作
  • @Alik 是的!似乎工作得很好。
  • 如果有人想将此作为答案添加,我会接受。否则我会在一两天内自己完成!
  • @Alik 我认为你应该回答它

标签: python python-2.7


【解决方案1】:

您可以使用dictionary comprehension.items() 方法。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-04
    • 2015-09-05
    • 1970-01-01
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多