Voglio verificare se tutti i valori, cioè i valori corrispondenti a tutti i tasti in un dizionario sono 0. C'è un modo per farlo senza loop? Se é cosi, come?Come verificare se tutti i valori di un dizionario sono 0, in Python?
risposta
uso all()
:
all(value == 0 for value in your_dict.values())
all
restituisce True
se tutti gli elementi della data iterabile sono vere.
È possibile utilizzare il metodo any(), in pratica controlla i parametri booleani, ma in questo caso 0 fungerà da Falso e qualsiasi altro numero come Vero. Prova questo codice:
dict1 = {"a": 0, "b": 1}
dict2 = {"a": 0, "b": 0}
print not any(dict1.itervalues())
print not any(dict2.itervalues())
uscita:
False
True
Edit2: una nota a margine/cautela, di chiamare qualsiasi() con un elenco vuoto di elementi restituisce false.
Con all
:
>>> d = {1:0, 2:0, 3:1}
>>> all(x==0 for x in d.values())
False
>>> d[3] = 0
>>> all(x==0 for x in d.values())
True
Non importa se si utilizza any
o all
, la valutazione sarà pigro. all
restituisce False
sul primo valore di falsi che incontra. any
restituisce True
sul primo valore di verità che incontra.
Pertanto, not any(d.values())
fornirà lo stesso risultato per il dizionario di esempio fornito. È un po 'più corto della versione all
con la comprensione del generatore. Personalmente, mi piace ancora la variante all
perché esprime ciò che vuoi senza che il lettore debba fare la negazione logica nella sua testa.
C'è un problema più con l'utilizzo di any
qui, però:
>>> d = {1:[], 2:{}, 3:''}
>>> not any(d.values())
True
Il dizionario non contiene il valore 0, ma not any(d.values())
sarà tornare True
perché tutti i valori sono falsy, cioè bool(value)
rendimenti False
per una lista vuota , dizionario o stringa.
In breve: conteggi di leggibilità, essere espliciti, utilizzare la soluzione all
.
Il 'not any' valuterà su True se tutti i valori sono _falsey_, quindi è diverso dal test se tutti i valori sono uguali a' 0'. –
Si può anche fare il contrario utilizzando qualsiasi:
>>> any(x != 0 for x in somedict.values())
Se restituisce True, tutti i tasti non sono 0, altrimenti tutti i tasti sono 0
- 1. Come verificare se tutti i valori nella matrice sono identici?
- 2. Come verificare se tutti i valori nelle colonne di una matrice numpy sono uguali?
- 3. Verificare se i valori in un set sono in una matrice numpy in python
- 4. Come verificare se tutti i campi sono univoci in oracle?
- 5. per verificare se tutti EditText sono vuoti
- 6. Come posso verificare se tutti i bit sono impostati o tutti i bit no?
- 7. Come sommare tutti i valori in un dizionario?
- 8. Come sapere se tutti i valori dell'oggetto javascript sono veri?
- 9. 5 valori massimi in un dizionario Python
- 10. Pandas - controllare se tutti i valori sono NaN in serie
- 11. Verificare se i dati sono disponibili nei socket in python
- 12. Sostituendo contemporaneamente tutti i valori di un dizionario a zero python
- 13. Verificare se gli elementi tutti i bambini sono nascosti
- 14. Come convertire i valori del dizionario in int in Python?
- 15. Come controllare se tutti i valori di un array sono uguali
- 16. Come verificare se una chiave, coppia di valori esiste in un dizionario
- 17. Determinare se il dizionario contiene tutti i set di chiavi
- 18. Python: valori Somma in un dizionario in base alle condizioni
- 19. Aggiunta di valori al dizionario in Python
- 20. AS3: verificare se un dizionario è vuoto
- 21. Valori dizionario Python map()
- 22. Come risolvere i valori di default da un dizionario Pythonico?
- 23. Verificare se tutti gli elementi di un elenco Python sono False
- 24. Converti i set in frozenset come valori di un dizionario
- 25. Somma tutti i valori di un contatore in Python
- 26. Come fare un ritorno LINQ Somma nullo se i valori sommati sono tutti nulli
- 27. Come verificare se gli elementi di un ArrayList sono tutti contenuti in un altro ArrayList
- 28. Come verificare se un valore è presente in un dizionario (python)
- 29. Conversione di tutti i valori non numerici a 0 (zero) in Python
- 30. xslt: se verificare i valori booleani
Come hai fatto con un ciclo continuo? –
ho iterato attraverso il dizionario e ho controllato tutti i valori i valori corrispondenti a tutte le chiavi se anche uno non era vero ho cambiato il valore del flag e ho interrotto il ciclo. –