Python-partition und split
Will ich split einen string mit zwei Wörtern wie "wort1 wort2" mit split-und partition und drucken (verwenden Sie eine für) die Wörter getrennt, wie:
Partition:
word1
word2
Split:
word1
word2
Dies ist mein code:
print("Hello World")
name = raw_input("Type your name: ")
train = 1,2
train1 = 1,2
print("Separation with partition: ")
for i in train1:
print name.partition(" ")
print("Separation with split: ")
for i in train1:
print name.split(" ")
Dies ist passiert:
Separation with partition:
('word1', ' ', 'word2')
('word1', ' ', 'word2')
Separation with split:
['word1', 'word2']
['word1', 'word2']
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen Befehl wie
name.split()
eine Liste zurückgibt. Sie sollten erwägen, die Iteration über die Liste:Weil das was du geschrieben hast, nämlich
ausführen des Befehls
print name.split(" ")
zweimal (einmal für Werti=1
, und einmal mehr füri=2
). Und zweimal wird es drucken Sie das gesamte Ergebnis:Ähnliches geschieht mit
partition
- außer er gibt das element, das Sie teilen, wie gut. Also in diesem Fall möchten Sie vielleicht zu tunzurückkehren Elemente
0
und2
. Alternativ dazu können SieDrucken element 0 und 2 in zwei aufeinanderfolgenden Durchgängen durch die Schleife. Beachten Sie, dass diese letzteren code ist ineffizienter, als es berechnet die partition doppelt. Wenn Sie gepflegt, Sie schreiben könnten,
.partition(sep)
zurückfirst
,sep
,tail
, nicht wahr?sep
die Sie wahrscheinlich nicht wollen, um zu drucken.str.partition
gibt ein Tupel mit drei Elementen. String vor der Partitionierung string, der Partitionierung string selbst und der rest der Zeichenkette. Also, es muss verwendet werden, wie diesVerwenden
str.split
, können Sie drucken Sie einfach das aufgeteilte Zeichenketten wie dieseAber, wenn Sie es so nennen, wenn die Zeichenfolge mehr als ein Zeichen, erhalten Sie mehr als zwei Elemente. Zum Beispiel
Wenn Sie wollen nur einmal aufteilen, können Sie die Anzahl der Zeiten aufteilen, wie der zweite parameter, wie dies
Aber, wenn Sie versuchen, split, basierend auf den whitespace-Zeichen, die Sie nicht haben, um pass
" "
. Sie können einfach tunWenn Sie möchten, um die Anzahl der splits,
Hinweis: Mit
None
imsplit
oder Angabe keine Parameter, das ist, was passiert,Zitat aus dem split-Dokumentation
So, Sie können ändern Sie Ihr Programm wie dieses
Oder verwenden Sie
str.join
Methode wie dieseDie partition () - Methode teilt den string beim ersten vorkommen des Trennzeichens und gibt ein Tupel mit den Teil der vor der separator, separator und der Teil nach dem Trennzeichen.
string = "Deepak ist ein guter Mensch und Preeti ist nicht ein guter Mensch." //'ist' Trennzeichen gefunden wird, beim ersten auftreten
print(string.partition ("ist"))
Ausgabe:
('Deepak ', 'ist ', 'ein guter Mensch und Preeti ist nicht ein guter Mensch.')
Und in split,
string = "Deepak ist ein guter Mensch und Preeti ist nicht ein guter Mensch." //'ist' Trennzeichen gefunden wird, bei jedem auftreten
print(string.partition ("ist"))
Ausgabe:
('Deepak ', 'ist ', 'ein guter Mensch und Preeti','ist','ist nicht ein guter Mensch.')
Einfach ausgedrückt, split teilt den string bei jedem auftreten des angegebenen Arguments, während die partition wird nur split die Zeichenfolge in der ersten vorkommen des angegebenen Arguments und wird wieder ein 3-Tupel mit den angegebenen argument als der mittlere Wert.