2016-06-08 4 views
-1

Wie würde man die Positionen eines bestimmten Zeichens suchen, das mehrfach in Python erscheint.Finden Sie ein Zeichen an mehreren Stellen python

Beispiel:

Wenn ich Eingabe der Zeichenfolge „Viele Füchse“ wie würde ich jede der Positionen von „O“ und zeigt sie unabhängig

Danke für Ihre Hilfe finden

Antwort

0

Sie konnten die mit einer einfachen for Schleife erreichen wie so:

def find_position(astring, acharacter): 
    positions = [] 
    for c in range(len(astring)): 
     if astring[c] == acharacter: 
      positions.append(c) 
    return positions 

und testen:

a = find_position("Lots of foxes", 'o') 
print a 

drucken [1, 5, 9]

2

können Sie verwenden re.finditer:

>>> import re 
>>> [match.start() for match in re.finditer('o', 'Lots of foxes')] 
[1, 5, 9] 

Oder, wenn Sie Groß- und Kleinschreibung Suche wollen:

>>> [match.start() for match in re.finditer('O', 'Lots of foxes', re.IGNORECASE)] 
[1, 5, 9] 

Oder, ohne den regulären Ausdruck:

>>> [i for i, k in enumerate('Lots of foxes') if k == 'o'] 
[1, 5, 9] 
+0

die "import re" für den Fall requres es ist nicht klar, was nicht sein könnte;) –

+0

Danke, ich habe die Antwort aktualisiert. – AKS

0

Sie können es ohne regexp tun:

for idx, val in enumerate("Lots of foxes"): 
    if val == "O": 
     print(idx) 

Wenn Sie das Spiel zu Fall insesitive wollen, nur die ändern Linie val == "O" mit val.upper() == "0".

Verwandte Themen