Wie spalte ich einen String in Python um 2 oder 3, etc [duplicate]

Diese Frage hat hier schon eine Antwort:

  • Split String jeden n-ten Charakter? 15 antworten
  • Was ist der "pythonische" Weg, um über eine Liste in Brocken zu iterieren? 31 antworten

Weiß jemand, ob es in python möglich ist, einen String zu spalten, nicht unbedingt durch einen Raum oder Kommas, sondern nur durch jeden anderen Eintrag in der Zeichenfolge? Oder jeden 3. oder 4.

  • Aufteilung auf das erste Vorkommen
  • Split-Funktion hinzufügen: \ xef \ xbb \ xbf ... \ n zu meiner Liste
  • Split große Dateien mit Python
  • Python split function -avoids letzten empy space
  • Split txt-Datei auf mehrere Dateien, die nach ihrem Inhalt in Python benannt sind
  • Produktcode sieht aus wie abcd2343, was mit Buchstaben und Zahlen zu teilen
  • Zum Beispiel, wenn ich "12345678" als meine Saite hatte, gibt es einen Weg, um es in "12", "34", "56", 78 "?

  • Wie generieren Sie zufällige Zahlen, während die Vermeidung von bereits verwendeten Zahlen
  • Wie man ein Generatorobjekt oder einen Iterator in Python schneidet
  • Warum gibt es "Ausbeute" in einem Generator Ausdruck Ausbeute `Keine` s?
  • Zusammenführung von faulen Strömen (mit Generatoren) in Python
  • Beitritt zu einem Satz von geordneten Integer, der Python-Iteratoren ergibt
  • Wie kann ich Generatoren / Iteratoren als falsch auswerten, wenn es erschöpft ist?
  • 3 Solutions collect form web for “Wie spalte ich einen String in Python um 2 oder 3, etc [duplicate]”

    Sie können das Listenverständnis verwenden:

    >>> x = "123456789" >>> [x[i : i + 2] for i in range(0, len(x), 2)] ['12', '34', '56', '78', '9'] 

    Sie können ein Listenverständnis verwenden. Iterate über deine Saite und greife alle zwei Charaktere mit dem Slicing und die zusätzlichen Optionen in der range .

     s = "12345678" print([s[i:i+2] for i in range(0, len(s), 2)]) # >>> ['12', '34', '56', '78'] 

    Was Sie wollen, ist die itertools grouper() Rezept , die jede beliebige iterable und gibt Ihnen Gruppen von n Elemente aus diesem iterable:

     def grouper(iterable, n, fillvalue=None): "Collect data into fixed-length chunks or blocks" # grouper('ABCDEFG', 3, 'x') --> ABC DEF Gxx" args = [iter(iterable)] * n return zip_longest(*args, fillvalue=fillvalue) 

    (Beachten Sie, dass in 2.x ist dies etwas anders als zip_longest() heißt izip_longest() !)

    Z.B:

     >>> list(grouper("12345678", 2)) [('1', '2'), ('3', '4'), ('5', '6'), ('7', '8')] 

    Sie können dann die Streicher mit einem einfachen Listenverständnis wieder verbinden :

     >>> ["".join(group) for group in grouper("12345678", 2)] ['12', '34', '56', '78'] 

    Wenn Sie vielleicht weniger als einen vollständigen Satz von Werten haben, verwenden Sie einfach fillvalue="" :

     >>> ["".join(group) for group in grouper("123456789", 2, fillvalue="")] ['12', '34', '56', '78', '9'] 
    Python ist die beste Programmiersprache der Welt.