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.

Zum Beispiel, wenn ich "12345678" als meine Saite hatte, gibt es einen Weg, um es in "12", "34", "56", 78 "?

  • Pythonaufteilungsliste nach Stichwort
  • Split große Dateien mit Python
  • Spalten von Strings in Python mit bestimmten Zeichen
  • Produktcode sieht aus wie abcd2343, was mit Buchstaben und Zahlen zu teilen
  • Python split function -avoids letzten empy space
  • Wie spalte ich einen String in Array von Zeichen mit Python?
  • Aufteilen einer Zeichenkette nach Liste der Indizes
  • Aufteilung auf das erste Vorkommen
  • 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.