如何映射键,在另一个字典中查找键?

叶夫根尼·别列佐夫斯基(Evgeniy Berezovsky)

鉴于这些字典:

somedict:
  key1: value1
  key2: value2
otherdict:
  key1: mapped1
  key2: mapped2

如何somedict通过otherdict在Ansible中查找键来映射和更改键结果应该是这样的:

mapped1: value1
mapped2: value2

看起来应该可以使用这种声明性的东西:

{{ somedict | map(<MAP KEY>) | list }}

还是我真的必须对这种事情使用命令式循环?

以下

{{ somedict | map('extract', otherdict) | list }}

成功地映射了键,但是在过程中丢失了值...

弗拉基米尔·博特卡

问:“结果应该是这样的:

mapped1: value1
mapped2: value2

答:下面的任务

    - debug:
        msg: "{{ somedict|
                 map('extract', otherdict)|
                 zip(somedict|
                     dict2items|
                     map(attribute='value'))|
                 list }}"

给出列表列表。这不是预期的结果

  msg:
  - - mapped1
    - value1
  - - mapped2
    - value2

要接收字典,请应用dict函数并删除列表过滤器。例如

    - debug:
        msg: "{{ dict(somedict|
                      map('extract', otherdict)|
                      zip(somedict|
                          dict2items|
                          map(attribute='value'))) }}"

  msg:
    mapped1: value1
    mapped2: value2

这可以进一步简化。下面的任务给出了相同的字典

    - debug:
        msg: "{{ dict(somedict|
                      map('extract', otherdict)|
                      zip(somedict.values())) }}"

笔记
  • 将字典转换为列表会产生字典键列表。例如
    - debug:
        msg: "{{ somedict|list }}"

  msg:
  - key1
  - key2
  • 通过列出字典键可以达到相同的结果
    - debug:
        msg: "{{ somedict.keys()|list }}"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何遍历字典中的键并与另一个字典中的键/值匹配

来自分类Dev

如何使用 if 语句作为字典键并填充另一个字典?

来自分类Dev

将字典中的键复制到另一个字典

来自分类Dev

使用另一个字典列表中的键对字典列表进行排序

来自分类Dev

如何根据python中另一个字典键的匹配来修改字典中的键值列表?

来自分类Dev

如何在一个字典中找到在另一个字典中没有对应项的键?

来自分类Dev

如何在Python中从另一个字典复制唯一键和值

来自分类Dev

如何从字典数组中获取字典的数组(例如arrayGroupBy),其中某个键的值与另一个字典键的值匹配

来自分类Dev

创建一个值与另一个字典中的键相同的字典

来自分类Dev

在Django模板的另一个字典中迭代一个键的字典

来自分类Dev

通过使用另一个字典键和值构造一个字典

来自分类Dev

使用键,一个字典中的值来获取python中另一个字典中的值

来自分类Dev

将字典的前2个最大键和值放在另一个字典中

来自分类Dev

如何根据匹配的顶级键将元素从一个字典插入到另一个字典

来自分类Dev

如何创建一个字典来显示另一个字典的哪些值属于哪些键

来自分类Dev

识别一个字典中的键,并使用它来修改另一个字典的值

来自分类Dev

用另一个字典的键替换字典的值

来自分类Dev

用另一个字典的键替换字典的值

来自分类Dev

Django 模板从另一个字典键访问字典

来自分类Dev

如何针对另一个字典键/值匹配查询嵌套对象字典

来自分类Dev

在python 3的另一个字典中添加带有静态键的字典

来自分类Dev

如何将字典中的键与列表中的元素进行匹配,并将这些键值存储到python中的另一个字典中?

来自分类Dev

将一个字典中的空列表的键与另一个包含该键作为值的字典合并后,找到最小的集合

来自分类Dev

如何基于Python中的匹配键将键值对添加到另一个字典列表中的现有字典列表中

来自分类Dev

如何将字典附加到 Python3 中的另一个字典字符串键?

来自分类Dev

如果另一个字典中存在项(键和值),则从它们中删除

来自分类Dev

从一个字典的键和另一个字典的值构建一个新字典

来自分类Dev

如何将字典值映射到另一个字典

来自分类Dev

如何将字典映射到另一个字典Python

Related 相关文章

  1. 1

    如何遍历字典中的键并与另一个字典中的键/值匹配

  2. 2

    如何使用 if 语句作为字典键并填充另一个字典?

  3. 3

    将字典中的键复制到另一个字典

  4. 4

    使用另一个字典列表中的键对字典列表进行排序

  5. 5

    如何根据python中另一个字典键的匹配来修改字典中的键值列表?

  6. 6

    如何在一个字典中找到在另一个字典中没有对应项的键?

  7. 7

    如何在Python中从另一个字典复制唯一键和值

  8. 8

    如何从字典数组中获取字典的数组(例如arrayGroupBy),其中某个键的值与另一个字典键的值匹配

  9. 9

    创建一个值与另一个字典中的键相同的字典

  10. 10

    在Django模板的另一个字典中迭代一个键的字典

  11. 11

    通过使用另一个字典键和值构造一个字典

  12. 12

    使用键,一个字典中的值来获取python中另一个字典中的值

  13. 13

    将字典的前2个最大键和值放在另一个字典中

  14. 14

    如何根据匹配的顶级键将元素从一个字典插入到另一个字典

  15. 15

    如何创建一个字典来显示另一个字典的哪些值属于哪些键

  16. 16

    识别一个字典中的键,并使用它来修改另一个字典的值

  17. 17

    用另一个字典的键替换字典的值

  18. 18

    用另一个字典的键替换字典的值

  19. 19

    Django 模板从另一个字典键访问字典

  20. 20

    如何针对另一个字典键/值匹配查询嵌套对象字典

  21. 21

    在python 3的另一个字典中添加带有静态键的字典

  22. 22

    如何将字典中的键与列表中的元素进行匹配,并将这些键值存储到python中的另一个字典中?

  23. 23

    将一个字典中的空列表的键与另一个包含该键作为值的字典合并后,找到最小的集合

  24. 24

    如何基于Python中的匹配键将键值对添加到另一个字典列表中的现有字典列表中

  25. 25

    如何将字典附加到 Python3 中的另一个字典字符串键?

  26. 26

    如果另一个字典中存在项(键和值),则从它们中删除

  27. 27

    从一个字典的键和另一个字典的值构建一个新字典

  28. 28

    如何将字典值映射到另一个字典

  29. 29

    如何将字典映射到另一个字典Python

热门标签

归档