Ich habe eine Liste von ganzen Zahlen und möchte sie in einer Schleife verketten.
Das habe ich bisher
a = [3, 4, 6]
temp = []
for i in a:
query = 'Case:' + str(i)
temp.append(query)
print(' OR '.join(temp))
>>> Case:3 OR Case:4 OR Case:6
Gibt es einen besseren Weg, dies zu schreiben?
4 Antworten
Ja, Sie können den Generatorausdruck und str.join
verwenden.
' OR '.join('Case: {}'.format(i) for i in a)
Beispiel / Demo -
>>> a = [3, 4, 6]
>>> ' OR '.join('Case: {}'.format(i) for i in a)
'Case: 3 OR Case: 4 OR Case: 6'
Vervollständigung der Idee von @Joshua K zur Verwendung von Karte und Lambda (obwohl ich denke, dass das Listenverständnis eine bessere Lösung ist):
>>> a = [3, 4, 6]
>>> 'OR '.join(map(lambda i: 'Case:' + str(i) + ' ', a))
Case:3 OR Case:4 OR Case:6
Sie können auch Karten- und Lambda-Ausdrücke verwenden:
temp = map(lambda x: 'Case: '+str(x), a)
Sie könnten auch ein Verständnis verwenden:
>>> a = [3, 4, 6]
>>> ' OR '.join([ "Case " + str(x) for x in a ])
'Case 3 OR Case 4 OR Case 6'
Verwandte Fragen
Neue Fragen
python
Python ist eine dynamisch typisierte Mehrzweck-Programmiersprache mit mehreren Paradigmen. Es wurde entwickelt, um schnell zu lernen, zu verstehen, zu verwenden und eine saubere und einheitliche Syntax durchzusetzen. Bitte beachten Sie, dass Python 2 ab dem 01.01.2020 offiziell nicht mehr unterstützt wird. Fügen Sie für versionenspezifische Python-Fragen das Tag [python-2.7] oder [python-3.x] hinzu. Wenn Sie eine Python-Variante (z. B. Jython, PyPy) oder eine Bibliothek (z. B. Pandas und NumPy) verwenden, fügen Sie diese bitte in die Tags ein.