Ein Python one-liner? wenn x in y, x zu tun
numbers = [1,2,3,4,5,6,7,8,9]
number = 1
Kann ich das folgende schreiben, auf einer Linie?
if number in numbers:
print number
Mit dem Stil von ruby:
puts number if numbers.include?(number)
Habe ich versucht:
print number if number in numbers
Aber die syntax ist ungültig.
FWIW, eine weitere Möglichkeit, es zu tun in Ruby-Array-Kreuzung:
Zusätzlich zu den Antworten unten, es ist dieser thread.
Ich wusste nicht, dass. Nett 😉
puts numbers & [number]
. Ich weiß nicht, ob es eine einfache Entsprechung in Python.Zusätzlich zu den Antworten unten, es ist dieser thread.
Ich wusste nicht, dass. Nett 😉
InformationsquelleAutor beoliver | 2012-02-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Python ist Python, Ruby Ruby. Mein Rat ist, nicht zu versuchen, eines zu schreiben, das andere.
Python nicht haben Ruby /Perl "postfix-wenn", und die Pythonic Weg zu schreiben, das ist die, die Sie schon haben.
Aber wenn Sie wirklich müssen, das funktioniert:
Es ist gegen den offiziellen style guide, PEP8, aber:
Ja. Siehe mein edit.
Postfix wenn? Du meinst PEP 308 🙂
InformationsquelleAutor Thomas
Die python-syntax ist
yes_value if test else no_value
. Mit optionalen Klammern zur Verdeutlichung kann man sagen:Ich bin damit einverstanden, die syntax ist unglaublich unintuitiv. Sogar C-bedingte Ausdrücke sind leichter zu Lesen.
Was ist so entsetzlich?
InformationsquelleAutor alexis
Wenn Sie hinzufügen else "" zum Ende Ihrer ursprünglichen code bekommst du ein funktionierendes Konstrukt in Python 2.7:
Wenn die Zahl in Ziffern, dann wird es gedruckt. Andernfalls wird eine leere Zeichenfolge ausgegeben.
Aber wie andere schon bemerkt, wenn Sie wirklich nicht wollen, dass die print-Anweisung ausgeführt, haben Sie, um mit zu gehen:
InformationsquelleAutor Lynwood Hines
Dies sollte den trick tun:
Oder, wenn Sie mit Python 3:
IMHO weniger die Lesbarkeit, so dass ich die zwei liner.
InformationsquelleAutor Anish Gupta