首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Jinja2中根据长度对列表进行排序

在Jinja2中根据长度对列表进行排序
EN

Stack Overflow用户
提问于 2018-09-26 18:42:32
回答 1查看 204关注 0票数 0

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

代码语言:javascript
复制
a = [ 'core', 'edge', 'darling', 'skynet' ]

是一个列表..如果我在"jinja2“中进行普通排序,它会给出如下结果

代码语言:javascript
复制
[ 'core', 'darling', 'edge', 'skynet' ]

但是我们希望结果如下所示

代码语言:javascript
复制
['core', 'edge', 'skynet', 'darling']

有没有办法在jinja2中实现这一点?

EN

回答 1

Stack Overflow用户

发布于 2018-09-26 19:24:50

您的位置如下:

  1. 创建每个元素的长度列表
  2. 使用在1中创建的压缩原始列表。-这将产生元组(列表)列表
  3. 对在2中创建的列表进行排序。通过第二个元组元素
  4. 映射第一个元组元素

<代码>G29

代码:

代码语言:javascript
复制
- debug:
    msg: "{{ a | zip(a|map('count')) | sort(attribute=1) | map(attribute=0) | list }}"

结果是:

代码语言:javascript
复制
TASK [debug] *******************************************************************
ok: [localhost] => {
    "msg": [
        "core",
        "edge",
        "skynet",
        "darling"
    ]
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52515860

复制
相关文章

相似问题

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