String Verbindung von Iterable mit Strings und (NoneType / Undefined)

7

Ich suche nach einer sauberen Möglichkeit, Variablen mit einem vordefinierten Trennzeichen zu einer einzigen Zeichenfolge zu kombinieren. Das Problem ist, dass manchmal einige dieser Variablen nicht immer existieren oder auf None gesetzt werden können. Ich kann die Trennzeichenfolge auch nicht duplizieren. Beispiel für ein Problem:

%Vor%

Gibt es eine schöne, saubere Möglichkeit, dies zu tun?

    
unixunion 20.06.2012, 12:12
quelle

3 Antworten

16

Sie können ein Verständnis verwenden, um Ihr iterables mit einer bedingten Überprüfung zu füllen, dass Werte einen truthy Wert haben.

%Vor%     
dm03514 20.06.2012, 12:14
quelle
2

Wenn Sie die Anzahl der Elemente konstant halten möchten (z. B. weil Sie eine Tabelle ausgeben möchten, in der die Liste eine Zeile ist und jedes Element eine Spalte darstellt), verwenden Sie:

%Vor%

Übrigens ist dies auch der Weg, wenn alle Elemente, die Sie verbinden wollen, Ganzzahlen sind.

    
Tayo 07.03.2013 12:32
quelle
1

Sie können filter(bool, your_list) oder filter(None, your_list) verwenden, um alles zu entfernen, was bei der Konvertierung in ein bool als False ausgewertet wird, z. B. False, None, 0, [], (), {}, '', vielleicht auch andere.

Sie können locals().get('mightnotexist') oder globals().get('mightnotexist') verwenden, abhängig davon, ob die Variable lokal oder global ist, um auf eine Variable zu verweisen, die möglicherweise nicht existiert. Diese geben None zurück, wenn die Variable nicht existiert.

Ihr Code könnte folgendermaßen aussehen:

%Vor%     
chriswatrous 28.02.2015 04:40
quelle

Tags und Links