Python - teile die Zeichenkette in kleinere Stücke und weise eine Variable zu

8

Ist es möglich, eine Zeichenfolge in Python aufzuteilen und jede abgespaltene Komponente einer Variablen zuzuweisen, die später verwendet werden soll? Ich würde gerne in der Lage sein, nach Länge zu teilen, wenn möglich, aber ich bin nicht sicher, wie es mit len ​​() funktionieren würde.

Ich habe es versucht, aber es hat mir nicht das gebracht, was ich brauchte:

%Vor%

Ergebnis:     ['dies']

Ich möchte zu etwas wie folgt führen:

%Vor%     
wondergoat77 06.12.2012, 18:01
quelle

8 Antworten

9

Wenn Sie auf drei Zeichen gleichzeitig zugreifen möchten, müssen Sie slicing .

Sie können eine Liste der 3 Zeichen langen Teile der Zeichenfolge mit einem Listenverständnis wie folgt erhalten:

%Vor%

Das wichtige Bit ist:

%Vor%

range(0, len(x), step) liefert uns die Indizes des Beginns jeder step -Zeichenscheibe. for i in wird über diese Indizes iterieren. x[i:i+step] ruft das Segment von x ab, das am Index i beginnt und step Zeichen lang ist.

Wenn Sie wissen, dass Sie jedes Mal genau vier Teile erhalten, können Sie Folgendes tun:

%Vor%

Dies wird passieren, wenn 3 * step < len(x) <= 4 * step .

Wenn Sie nicht genau vier Teile haben, gibt Python Ihnen ValueError , die versuchen, diese Liste zu entpacken. Aus diesem Grund würde ich diese Technik als sehr brüchig betrachten und würde sie nicht verwenden.

Sie können das einfach tun

%Vor%

Nun, wo Sie auf a zugegriffen haben, können Sie auf x_pieces[0] zugreifen. Für b können Sie x_pieces[1] und so weiter verwenden. Dies ermöglicht Ihnen viel mehr Flexibilität.

    
Sam Mussmann 06.12.2012, 18:17
quelle
5

Sie können das Entpacken verwenden

%Vor%     
user1819998 06.12.2012 18:10
quelle
5

ein paar Alternativen

Normalerweise mag ich keine regulären Ausdrücke, aber um einen String zu chunken, ist es nicht zu schlecht zu benutzen:

%Vor%

Und Overkill

%Vor%     
Jon Clements 06.12.2012 18:54
quelle
4

Sie können so etwas ausprobieren:

%Vor%

unter Verwendung von itertools.islice() :

%Vor%     
Ashwini Chaudhary 06.12.2012 18:03
quelle
1
%Vor%

Dadurch wird jeder Teil in einer Zeile gedruckt ... hier können Sie auch sehen, wie len()

verwendet wird

Die while-Schleife druckt jede Zeile, bis der Zähler die maximale Länge erreicht hat

    
Lotzki 06.12.2012 18:20
quelle
1
%Vor%

Dies beinhaltet 'Leerzeichen' Zeichen ('').

Wenn Sie jede Nummer behalten möchten, behalten Sie sie in einer Liste:

%Vor%     
Rushy Panchal 06.12.2012 18:28
quelle
0
%Vor%

Testen Sie es so:

%Vor%     
gokul vankadara 06.12.2012 19:17
quelle
0

Dies erzeugt die exakte Ausgabe, die Sie unter der Einschränkung, dass die Zeichenfolge weniger als 27 Wörter hat, haben wollten. Sie können immer Generatoren verwenden, wenn Ihnen die Schlüssel für die Darstellung der Blöcke fehlen.

%Vor%     
Akshay Krishnan R 14.11.2013 12:28
quelle

Tags und Links