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.

  • Aufteilen einer Zeichenkette nach Liste der Indizes
  • Split große Dateien mit Python
  • Python split function -avoids letzten empy space
  • Aufteilung auf das erste Vorkommen
  • Split-Funktion hinzufügen: \ xef \ xbb \ xbf ... \ n zu meiner Liste
  • Den Namen einer Person in Vorname und Nachname aufteilen
  • Zum Beispiel, wenn ich "12345678" als meine Saite hatte, gibt es einen Weg, um es in "12", "34", "56", 78 "?

  • Generatorfunktionen gleichwertig in Java
  • Pythonausbeute und Stopptration in einer Schleife?
  • Prime Number Generator stürzt aus Speicherfehler ab, wenn es zu viele Zahlen im Array gibt
  • Warum ist dieser Python-Generator immer wieder den gleichen Wert?
  • Generator von gleichmäßig beabstandeten Punkten in einem Kreis in Python
  • Gibt es eine Python-Bibliothek zur Handhabung komplizierter mathematischer Sets (konstruiert mit mathematischer Set-Builder-Notation)?
  • 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.