Python: Überprüfen Sie, ob alle Wörterbücher in der Liste leer sind

8

Ich habe eine Liste von Wörterbüchern. Ich muss überprüfen, ob alle Wörterbücher in dieser Liste leer sind. Ich suche nach einer einfachen Aussage, die es in einer Zeile macht.

Gibt es eine einzige Möglichkeit, um Folgendes zu tun (ohne den Ausdruck)?

%Vor%

Etwas Neues zu Python ... Ich weiß nicht, ob es eine integrierte Kurzschreibweise gibt, um das zu überprüfen. Danke im Voraus.

    
Brant 19.03.2010, 17:54
quelle

3 Antworten

19
%Vor%     
Jimmy 19.03.2010, 17:57
quelle
10

not any(d for d in l) könnte in diesem Fall auf nur not any(l) verkürzt werden.

    
user297250 19.03.2010 18:05
quelle
10
___ answer2479487 ___
%Vor%     
___ tag123python ___ Python ist eine dynamische und stark typisierte Programmiersprache, die die Usability betont. Zwei ähnliche, aber größtenteils inkompatible Versionen von Python sind weit verbreitet (2 und 3). Wenn Sie eine versionsspezifische Python-Frage haben, sollten Sie die Tags [python-2.7] oder [python-3.x] zusätzlich zum Tag [python] verwenden. Wenn Sie eine Python-Variante wie jython, pypy, iron-python usw. verwenden, kennzeichnen Sie diese bitte entsprechend. ___ qstntxt ___

Ich habe eine Liste von Wörterbüchern. Ich muss überprüfen, ob alle Wörterbücher in dieser Liste leer sind. Ich suche nach einer einfachen Aussage, die es in einer Zeile macht.

Gibt es eine einzige Möglichkeit, um Folgendes zu tun (ohne den Ausdruck)?

%Vor%

Etwas Neues zu Python ... Ich weiß nicht, ob es eine integrierte Kurzschreibweise gibt, um das zu überprüfen. Danke im Voraus.

    
___ answer2479501 ​​___

not any(d for d in l) entspricht dem Gesetz von De Morgan mit all(not d for d in l) , gilt aber nur mit einem not Operator. Das Kurzschlussverhalten ist ebenfalls gleichwertig.

Edit 1 : Das innere Genexp ist eigentlich (harmlos aber) redundant: not any(l) ist schneller und prägnanter.

Bearbeiten 2 : Ein Kommentar behauptet, dass all(not d for d in l) "mehr ist, was du ausdrücken willst" als not any(l) , und ich stimme überhaupt nicht zu: auch in natürlicher Sprache "alle Elemente der Liste sind unpopulated "ist nicht mehr normal, direkt oder klar als" kein Punkt der Liste ist bevölkert "- jenseits der absoluten logischen Äquivalenz durch die Gesetze der Logik sind die beiden Ausdrucksmöglichkeiten sehr nahe und in etwa gleichwertig menschliche Psychologie auch.

    
___ qstnhdr ___ Python: Überprüfen Sie, ob alle Wörterbücher in der Liste leer sind ___ answer2479536 ___

%code% könnte in diesem Fall auf nur %code% verkürzt werden.

    
___
Alex Martelli 19.03.2010 18:00
quelle

Tags und Links