根据条件对列表进行排序
Sort a list based on a condition
我以一个字符串作为输入例子:
ansible-playbook foo.yml -i bar.ini -e flags=valuea,valueb
我有一个字典作为变量
sample_dict: {
1: ["valuea"],
2: ["valueb", "valuec"]
}
我想根据 sample_dict
中的键对 flagss.split(',')
进行排序,所以如果我的标志像 flags=valuec,valuea,valueb
一样以随机顺序传递,它会根据我的 sample_dict
重新排列结构
让我改一下你的问题。给定字典
sample_dict:
1: [C]
2: [B, X]
3: [A]
根据字典的值对 comma-separated 字符串进行排序。例如,给定字符串 flags='X,C'
,预期结果为
result:
- C
- X
例如,下面的任务完成了工作
- set_fact:
result: "{{ result|d([]) + [item] }}"
loop: "{{ sample_vals }}"
when: item in _flags
vars:
_flags: "{{ flags.split(',') }}"
sample_vals: "{{ sample_dict.values()|flatten }}"
这是你想要的吗?
我以一个字符串作为输入例子:
ansible-playbook foo.yml -i bar.ini -e flags=valuea,valueb
我有一个字典作为变量
sample_dict: {
1: ["valuea"],
2: ["valueb", "valuec"]
}
我想根据 sample_dict
中的键对 flagss.split(',')
进行排序,所以如果我的标志像 flags=valuec,valuea,valueb
一样以随机顺序传递,它会根据我的 sample_dict
重新排列结构
让我改一下你的问题。给定字典
sample_dict:
1: [C]
2: [B, X]
3: [A]
根据字典的值对 comma-separated 字符串进行排序。例如,给定字符串 flags='X,C'
,预期结果为
result:
- C
- X
例如,下面的任务完成了工作
- set_fact:
result: "{{ result|d([]) + [item] }}"
loop: "{{ sample_vals }}"
when: item in _flags
vars:
_flags: "{{ flags.split(',') }}"
sample_vals: "{{ sample_dict.values()|flatten }}"
这是你想要的吗?