2016-03-18 20 views
0

yılında:yanıtlayıcı ': İki listeleri varken liste listesinde

a: 
- 1 
- 2 
- 3 
b: 
- 2 
- 3 
- 4 

ben a öğelerin herhangi b bulunan tek bir görevi çalıştırmak gerekir. Bu nasıl mümkün olabilir?

tasks: 
    - name: one of elements of a in b 
    debug: msg=At least one of elements of a is contained in b 
    when: ??? 
+0

prehaps kodunuzu biçimlendirmek için soru girişi kutusuna '{}' düğmesini kullanın: durumda

sonra sadece o çıkan listenin uzunluğunu kontrol? (Sorunuzu düzenleyebilirsiniz). Eğer d = a = {1,2,3} 'dır, eğer aslında bir 'set' ise, dicrinizin yapısına çok şaşkınım. –

+0

İki listeniz var gibi görünüyor. – larsks

+0

Benim için, ne soruyorsun belli değil! – Arman

cevap

3

yanıtlayıcı 'iki liste içerdiği elemanları döner intersect filtre vardır. (See docs)

{{ a | intersect(b) }} 

sonuç elemanları 2 ve 3 içeren bir liste olabilir.

tasks: 
    - name: one of elements of a in b 
    debug: msg=One of elements of a is contained in b 
    when: "{{ a | intersect(b) | length > 0 }}" 
+0

Teşekkürler, tam olarak ihtiyacım olan şey! – Misko