首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否存在类似intspan的列表中转换整数范围的不可用筛选器?

是否存在类似intspan的列表中转换整数范围的不可用筛选器?
EN

Stack Overflow用户
提问于 2021-04-19 10:35:52
回答 1查看 333关注 0票数 1

例如,我有[1-5,7,9-11],我想让它转换为[1,2,3,4,5,7,9,10,11]

在python中,我使用了intspan模块。我在Ansible过滤器里找不到这个。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-19 19:14:09

金佳没有这样的过滤器,它太复杂了,因为什么是模板系统,而不应该包含很多逻辑?

这就是说,您可以编写一些事实,在range过滤器的帮助下也可以这样做。然后,您甚至可以使这成为一个通用的任务,您可以在任何其他的游戏手册,一个include,或任何最适合您的任务。

考虑到剧本:

代码语言:javascript
复制
- hosts: all
  gather_facts: no
  vars:
    values: 1-4,8,9-11,16,36-42

  tasks:
    - set_fact:
        int_span: >
          {{ 
            int_span | default([]) + 
            range(value[0] | int, value[1] | default(value[0]) | int + 1) | list 
          }}
      loop: "{{ values.split(',') }}"
      vars:
        value: "{{ item.split('-') }}"

    - debug:
        var: int_span

这意味着:

代码语言:javascript
复制
PLAY [all] *********************************************************************

TASK [set_fact] ****************************************************************
ok: [localhost] => (item=1-4)
ok: [localhost] => (item=8)
ok: [localhost] => (item=9-11)
ok: [localhost] => (item=16)
ok: [localhost] => (item=36-42)

TASK [debug] *******************************************************************
ok: [localhost] => 
  int_span:
  - 1
  - 2
  - 3
  - 4
  - 8
  - 9
  - 10
  - 11
  - 16
  - 36
  - 37
  - 38
  - 39
  - 40
  - 41
  - 42

PLAY RECAP *********************************************************************
localhost                  : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67160376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档