Puncte:0

Ansible selectează elementele care sunt necompletate dintr-o listă

drapel cn
raw

Am nevoie de o variabilă cu toate elementele goale prezente în _nume listă. Am incercat asta:

spații libere: „{{ _names|select('căutare', '') | listă }}"

Dar nu pare să funcționeze

iata lista:

    „_nume”:
    [
        "",
        „ABC”,
        "",
        ""
    ]

Pentru a da un context, am nevoie de această variabilă pentru a număra elementele goale și a o compara.

Puncte:0
drapel fr

Calea intuitivă simplă este să Selectați elementele egale cu un șir gol. Un altul puțin contra-intuitiv, dar mai compact de scris este simplu respinge elemente (care în mod implicit vor respinge toate valorile care nu sunt goale). Următorul manual demonstrează ambele soluții care dau același rezultat.

Notă: cel respinge metoda de aici va funcționa doar atâta timp cât alte elemente nevide din listă nu sunt evaluate ca false. Dacă vreodată falseți valori booleene, acestea vor fi reținute și ele

- gazde: localhost
  gather_facts: false

  vars:
      _nume: ["","ABC","",""]
      blanks_select: „{{ _names | select('==', '') | list }}”
      blanks_reject: „{{ _names | resping | list }}”

  sarcini:
    - depanare:
        var: "{{ item }}"
      buclă:
        - blanks_select
        - blanks_reject

Care dă:

PLAY [localhost] ************************************************ ************************

SARCINA [depanare] ************************************************ ************************
ok: [localhost] => (item=blanks_select) => {
    "ansible_loop_var": "articol",
    „blanks_select”: [
        "",
        "",
        ""
    ],
    "item": "blanks_select"
}
ok: [localhost] => (item=blanks_reject) => {
    "ansible_loop_var": "articol",
    „blanks_reject”: [
        "",
        "",
        ""
    ],
    "articol": "blanks_reject"
}

JOACĂ RECAPITULARE ************************************************ ********************
localhost: ok=1 schimbat=0 inaccesibil=0 eșuat=0 omis=0 salvat=0 ignorat=0
drapel br
Varianta *respinge* funcționează dacă nu există niciun element în listă care evaluează la *False*. Puteți converti mai întâi elementele în șiruri, dacă doriți, de ex. ``blanks: "{{ _names|map('string')|reject|length }}"``.
Zeitounator avatar
drapel fr
@VladimirBotka absolut corect, de aceea am dat cele două abordări în cazul în care exemplul de intrare actual evoluează. Am adăugat însă această precizie în răspuns. Mulțumiri.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.