Python

Strings splitsen in Python

Strings splitsen in Python
In dit artikel wordt uitgelegd hoe u strings in python kunt splitsen met behulp van de methoden "split()" en "partition()". Deze methoden zijn vooral handig als u een zin of een groep woorden wilt converteren naar parseerbare en itereerbare Python-typen. Alle codevoorbeelden in deze handleiding zijn getest met Python-versie 3.8.6.

Gesplitste methode

De methode "split()" kan worden gebruikt om woorden te splitsen met behulp van een door de gebruiker opgegeven scheidingsteken. Het retourneert een lijst met gesplitste woorden zonder het scheidingsteken op te nemen. Als er geen scheidingsteken is opgegeven door de gebruiker, wordt witruimte (een of meer) gebruikt als een enkel scheidingsteken.

De onderstaande code retourneert bijvoorbeeld "['Linux', 'Hint']" als uitvoer:

tekst = "Linux-hint"
tekst.splitsen()

De onderstaande code retourneert "['LinuxHint', 'com']" als uitvoer wanneer ".” wordt gebruikt als scheidingsteken:

text = "LinuxHint.kom"
tekst.splitsen(“.”)

Het scheidingsteken hoeft geen enkel teken te zijn. De split-methode heeft twee argumenten:

Beide argumenten zijn optioneel. Zoals hierboven vermeld, als het argument "sep" niet is opgegeven, wordt witruimte gebruikt als scheidingsteken voor splitsing. Het argument "maxsplit" heeft een standaardwaarde van "-1" en splitst standaard alle exemplaren occurrence. Overweeg de onderstaande code:

text = "LinuxHint.co.ons"
tekst.splitsen(“.”)

Het retourneert "['LinuxHint', 'co', 'us']" als uitvoer. Als u wilt stoppen met splitsen bij de eerste keer dat het scheidingsteken voorkomt, geeft u "1" op als het argument "maxsplit".

text = "LinuxHint.co.ons"
tekst.splitsen(“.”, 1)

De bovenstaande code retourneert "['LinuxHint', 'co.us']" als uitvoer. Geef gewoon het aantal keren op waar u wilt dat het splitsingsproces stopt als het tweede argument.

Merk op dat als er opeenvolgende scheidingstekens zijn, er een lege tekenreeks wordt geretourneerd voor de resterende scheidingstekens na de eerste splitsing (wanneer het argument "maxsplit" niet wordt gebruikt):

text = "LinuxHint... com"
tekst.splitsen(".")

De bovenstaande code retourneert "['LinuxHint', ”, 'com']” als uitvoer. Als u lege strings uit de resulterende lijst wilt verwijderen, kunt u de volgende lijstcomprehensie-instructie gebruiken:

text = "LinuxHint... com"
resultaat = tekst.splitsen(".")
resultaat = [item voor item in resultaat als item != ""]
afdrukken (resultaat)

U krijgt "['LinuxHint', 'com']" als uitvoer na het uitvoeren van het bovenstaande codevoorbeeld.

Merk op dat de methode “split()” van links naar rechts beweegt om strings in woorden te splitsen. Als je een string van rechts naar links wilt splitsen, gebruik dan in plaats daarvan "rsplit()". De syntaxis, het gebruik en de argumenten zijn precies hetzelfde als de "split()"-methode.

Als er geen scheidingsteken in de tekenreeks wordt gevonden tijdens het gebruik van de methoden "split()" of "rsplit()", wordt de oorspronkelijke tekenreeks geretourneerd als het enige lijstelement.

Partitiemethode

De methode "partition()" kan worden gebruikt om strings te splitsen en het werkt identiek aan de methode "split()", met enkele verschillen. Het meest opvallende verschil is dat het het scheidingsteken behoudt en het als een item opneemt in de resulterende tupel met gesplitste woorden. Dit is vooral handig als u de string wilt verdelen in een itereerbaar object (tuple in dit geval) zonder originele tekens te verwijderen. Overweeg de onderstaande code:

text = "LinuxHint.kom"
resultaat = tekst.partitie(".")
afdrukken (resultaat)

Het bovenstaande codevoorbeeld retourneert "('LinuxHint', '.', 'com')” als de uitvoer. Als u wilt dat het resultaat van het type lijst is, gebruikt u in plaats daarvan het volgende codevoorbeeld:

text = "LinuxHint.kom"
resultaat = lijst(tekst.partitie("."))
afdrukken (resultaat)

U zou "['LinuxHint', ' moeten krijgen.', 'com']” als uitvoer na het uitvoeren van het bovenstaande codevoorbeeld.

De methode "partition()" heeft slechts één argument met de naam "sep" nodig. Gebruikers kunnen een scheidingsteken van elke lengte opgeven. In tegenstelling tot de methode “split()” is dit argument verplicht, dus u kunt het scheidingsteken niet weglaten. U kunt echter witruimte als scheidingsteken opgeven.

Merk op dat de partitiemethode stopt bij het eerste voorkomen van het scheidingsteken. Dus als je string meerdere scheidingstekens bevat, negeert de methode “partition()” alle andere voorkomens. Hier is een voorbeeld dat dit illustreert:

text = "LinuxHint.co.ons"
resultaat = lijst(tekst.partitie("."))
afdrukken (resultaat)

Het codevoorbeeld zal "['LinuxHint', '.', 'co.us']" als uitvoer. Als u het scheidingsteken in alle gevallen wilt splitsen en het scheidingsteken ook in de definitieve lijst wilt opnemen, moet u mogelijk een patroon "Regular Expression" of "RegEx" gebruiken. Voor het hierboven genoemde voorbeeld kunt u een RegEx-patroon op de volgende manier gebruiken:

opnieuw importeren
text = "LinuxHint.co.ons"
resultaat = re.splitsen("(\.)", tekst)
afdrukken (resultaat)

U krijgt "['LinuxHint', '.', 'mede', '.', 'us']” als uitvoer na het uitvoeren van het bovenstaande codevoorbeeld. Het puntteken is ontsnapt in de hierboven genoemde RegEx-instructie. Merk op dat hoewel het bovenstaande voorbeeld werkt met een enkel puntteken, het mogelijk niet werkt met complexe scheidingstekens en complexe tekenreeksen. Mogelijk moet u uw eigen RegEx-patroon definiëren, afhankelijk van uw gebruiksgeval. Het voorbeeld wordt hier net genoemd om u een idee te geven van het proces van het behouden van het scheidingsteken in de definitieve lijst met behulp van RegEx-instructies.

De methode "partition()" kan soms lege tekenreeksen achterlaten, vooral wanneer het scheidingsteken niet wordt gevonden in de tekenreeks die moet worden gesplitst. In dergelijke gevallen kunt u lijstbegrip-instructies gebruiken om lege tekenreeksen te verwijderen, zoals uitgelegd in de methode "split()" hierboven.

text = "LinuxHint"
resultaat = lijst(tekst.partitie("."))
resultaat = [item voor item in resultaat als item != ""]
afdrukken (resultaat)

Nadat u de bovenstaande code hebt uitgevoerd, zou u "['LinuxHint']" als uitvoer moeten krijgen.

Conclusie

Voor eenvoudige en duidelijke splitsingen kunt u de methoden "split()" en "partition()" gebruiken om itereerbare typen te krijgen. Voor complexe tekenreeksen en scheidingstekens moet u RegEx-instructies gebruiken.

Voeg muisbewegingen toe aan Windows 10 met deze gratis tools
In de afgelopen jaren zijn computers en besturingssystemen sterk geëvolueerd. Er was een tijd dat gebruikers opdrachten moesten gebruiken om door best...
Beheer en beheer muisbewegingen tussen meerdere monitoren in Windows 10
Muisbeheer voor twee schermen laat je muisbewegingen tussen meerdere monitoren controleren en configureren door de bewegingen nabij de grens te vertra...
Met WinMouse kunt u de beweging van de muisaanwijzer op Windows-pc aanpassen en verbeteren
Als u de standaardfuncties van uw muisaanwijzer wilt verbeteren, gebruik dan freeware WinMuis. Het voegt meer functies toe om u te helpen het meeste u...