You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ansible技术问题:如何对整数列表进行排序?附示例代码

Ansible整数列表排序方法

嘿,我来帮你搞定这个问题~首先提个小细节:你写的numberlist: {3,7,1,6,2,7,4,9}其实定义的是集合(set),集合的特性是自动去重且无序,如果你需要的是可排序的有序序列,建议用方括号[]定义成列表,比如:

vars:
  numberlist: [3,7,1,6,2,7,4,9]

回到排序的问题,Ansible基于Jinja2模板引擎,提供了sort()过滤器,专门用来对列表进行排序,完全满足你的需求!下面给你几个实用的示例:

基础升序排序

默认情况下,sort()会按数值升序排列列表:

---
- name: 测试列表排序
  hosts: localhost
  vars:
    numberlist: [3,7,1,6,2,7,4,9]
  tasks:
    - name: 打印升序排序结果
      debug:
        msg: "升序排序后的列表: {{ numberlist | sort }}"

执行后会输出:升序排序后的列表: [1, 2, 3, 4, 6, 7, 7, 9]

降序排序

如果需要降序排列,只需要给sort()加上reverse=true参数:

- name: 打印降序排序结果
      debug:
        msg: "降序排序后的列表: {{ numberlist | sort(reverse=true) }}"

执行后输出:降序排序后的列表: [9, 7, 7, 6, 4, 3, 2, 1]

处理集合转列表排序

如果你的变量确实是集合类型(比如保留了最初的{}定义),可以先通过list过滤器把集合转成列表,再排序(集合转列表会自动去重):

vars:
  numberset: {3,7,1,6,2,7,4,9}
tasks:
  - name: 集合转列表后排序
    debug:
      msg: "去重并排序后的列表: {{ numberset | list | sort }}"

执行后输出:去重并排序后的列表: [1, 2, 3, 4, 6, 7, 9]

内容的提问来源于stack exchange,提问作者skadoo sh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 08:02:52