Wie kann ich mit Python 2 überprüfen, ob eine Zeichenfolge mehrere bestimmte Zeichen enthält?
Beispiel: Geben Sie die folgende Zeichenfolge ein:
Die Kriminellen haben 1.000.000 Dollar an Juwelen gestohlen.
Wie erkenne ich, ob Dollarzeichen ("$"), Kommas (",") und Zahlen vorhanden sind?
not set(p).isdisjoint(set("0123456789$,"))
wop
ist die zu testende Zeichenfolge.Antworten:
Angenommen, Ihre Zeichenfolge lautet
s
:Und so weiter für andere Charaktere.
... oder
... oder
[Bearbeiten:
'$' in s
Antworten hinzugefügt ]quelle
s.find('$')!=-1
=>'$' in s
:-)any()
. Gibt es eine Möglichkeit, auf das gefundene Zeichenc
in einem pythonischen Stil zu verweisen (es scheint nur innerhalb von zu liegenany()
), oder müsste ich die Suche nach mehreren Zeichen expliziter gestalten?r'[\d\$,]'
damit er mit einem dieser Zeichen übereinstimmt, undelse:
am Ende fehlt der Doppelpunkt.Benutzer Jochen Ritzel sagte dies in einem Kommentar zu einer Antwort auf diese Frage von Benutzer dappawit. Es sollte funktionieren:
'1', '2' usw. sollten durch die gesuchten Zeichen ersetzt werden.
Auf dieser Seite in der Python 2.7-Dokumentation finden Sie einige Informationen zu Zeichenfolgen, einschließlich zur Verwendung des
in
Operators für Teilstringtests.Update: Dies macht den gleichen Job wie mein obiger Vorschlag mit weniger Wiederholungen:
quelle
Schneller Vergleich der Timings als Antwort auf den Beitrag von Abbafei:
Ausgabe:
Der Code ist also mit jedem kompakter, mit der Bedingung jedoch schneller.
EDIT: TL; DR - Bei langen Saiten ist if-then immer noch viel schneller als alle anderen!
Ich habe beschlossen, das Timing für eine lange zufällige Zeichenfolge anhand einiger der in den Kommentaren angesprochenen gültigen Punkte zu vergleichen:
Ausgabe:
Wenn-dann ist fast eine Größenordnung schneller als jede andere!
quelle
phrase
eine Zeichenfolge mit Alphabeten von A bis Z und ich möchte drucken, welche Alphabete nicht in einer Zeichenfolge enthalten sind. Wird die Verwendungany()
besser sein? oder gibt es eine kurze Möglichkeit zu überprüfen?Dadurch wird geprüft, ob Zeichenfolgen aus einer Kombination oder Ziffern, dem Dollarzeichen und einem Komma bestehen. Ist es das, wonach du suchst?
quelle
'testing $tring'
, was ich nicht denke, dass das OP passieren will.'testing $tring'
, wenn diematch
Methode verwendet wird, nur wenn siesearch
verwendet wird. Also ich denke sein Code ist in Ordnung.'$string'
obwohlsonst:
print ("Sonderzeichen ohne Leerzeichen")
quelle