【问题标题】:zip two values from the dictionary in Python在 Python 中从字典中压缩两个值
【发布时间】:2015-08-26 09:16:15
【问题描述】:

我正在尝试使用 Python numpy 将两个值压缩到字典中,但这并不是很成功。我所说的压缩是这样的:

  1. 我有一本名为 dict 的字典,里面看起来像 {'a0': [1, 2, 3], 'a1': [4, 5, 6]}
  2. 然后我想将此字典 dict 值压缩到:[(1, 4), (2, 5), (3, 6)](每个键中的一个元素)

【问题讨论】:

  • zip(*your_dict.values())
  • 那是我的尝试,但它没有给我想要的东西。就像 [(1,2,3),(4,5,6)]
  • 哦..等前面的明星..谢谢!我不知道前面的这颗星。有用!谢谢
  • “前面的星号”从your_dict.values() 给出的序列中解包项目并将它们转换为单独的参数,然后传递给zip 函数。请阅读this SO QA

标签: python numpy dictionary


【解决方案1】:

在传递到 zip() 时,您需要解包 dict.values()。示例 -

>>> d = {'a0': [1, 2, 3], 'a1': [4, 5, 6]}
>>> zip(*d.values())
[(4, 1), (5, 2), (6, 3)]

请注意,使用此方法时,压缩后的内部列表中的元素顺序无法保证,因为字典本身没有任何顺序感。

如果您需要特定的订单,则需要在您的 zip() 调用中明确说明。示例 -

>>> zip(d['a0'], d['a1'])
[(1, 4), (2, 5), (3, 6)]

【讨论】:

  • 没有办法通过dict键自动排序吗?对于大字典,这不合适。
猜你喜欢
  • 2013-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-15
  • 2021-04-21
  • 1970-01-01
  • 2017-10-31
相关资源
最近更新 更多