Sorting 根据长度对Jinja2中的列表进行排序

Sorting 根据长度对Jinja2中的列表进行排序,sorting,ansible,jinja2,Sorting,Ansible,Jinja2,我需要根据“jinja2”中的长度对列表进行排序。 例如 a = [ 'core', 'edge', 'darling', 'skynet' ] 这是一份清单。。 如果我在“jinja2”中进行正常排序,它给出的结果是 [ 'core', 'darling', 'edge', 'skynet' ] 但我们希望结果如下所示 ['core', 'edge', 'skynet', 'darling'] 在金贾2有什么办法可以得到这个吗?给你: 创建每个元素的长度列表 使用1中创建的压缩文件压缩原

我需要根据“jinja2”中的长度对列表进行排序。 例如

a = [ 'core', 'edge', 'darling', 'skynet' ]
这是一份清单。。 如果我在“jinja2”中进行正常排序,它给出的结果是

[ 'core', 'darling', 'edge', 'skynet' ]
但我们希望结果如下所示

['core', 'edge', 'skynet', 'darling']
在金贾2有什么办法可以得到这个吗?

给你:

  • 创建每个元素的长度列表
  • 使用1中创建的压缩文件压缩原始列表。-这将生成元组列表(列表)
  • 对在2中创建的列表进行排序。通过第二个元组元素
  • 映射第一个元组元素
  • 守则:

    - debug:
        msg: "{{ a | zip(a|map('count')) | sort(attribute=1) | map(attribute=0) | list }}"
    
    结果是:

    TASK [debug] *******************************************************************
    ok: [localhost] => {
        "msg": [
            "core",
            "edge",
            "skynet",
            "darling"
        ]
    }