Python

Kā sadalīt virknes Python

Kā sadalīt virknes Python
Šajā rakstā tiks paskaidrots, kā sadalīt virknes pitonā, izmantojot “split ()” un “partition ()” metodes. Šīs metodes ir īpaši noderīgas, ja vēlaties pārveidot teikumu vai vārdu grupu parsable un iterable Python tipos. Visi šajā ceļvedī esošie kodu paraugi tiek pārbaudīti ar Python 3. versiju.8.6.

Sadalīšanas metode

Metodi “split ()” var izmantot vārdu sadalīšanai, izmantojot lietotāja norādītu atdalītāju. Tas atgriež sadalīto vārdu sarakstu, neiekļaujot atdalītāju. Ja lietotājs nav norādījis atdalītāju, atstarpi (vienu vai vairākas) izmanto kā atsevišķu atdalītāju.

Piemēram, zemāk redzamais kods kā izvadi atgriezīs “[” Linux ”,“ Padoms ”]:

text = "Linux Hint"
tekstu.sadalīt ()

Zemāk redzamais kods atgriezīs “[” LinuxHint ”,“ com ”] kā izvadi, kad“.”Tiek izmantots kā atdalītājs:

text = "LinuxHint.com "
tekstu.sadalīt (“.”)

Atdalītājam nav jābūt vienai rakstzīmei. Sadalīšanas metodei ir divi argumenti:

Abi šie argumenti nav obligāti. Kā minēts iepriekš, ja arguments “sep” nav norādīts, atstarpi izmanto kā atdalītāju sadalīšanai. Argumenta “maxsplit” noklusējuma vērtība ir “-1”, un tas pēc noklusējuma sadala visus gadījumus. Apsveriet zemāk redzamo kodu:

text = "LinuxHint.līdz.mums "
tekstu.sadalīt (“.”)

Tas atgriezīs “[” LinuxHint ”,“ co ”,“ us ”] kā izvadi. Ja vēlaties pārtraukt sadalīšanu pirmajā atdalītāja parādīšanās reizē, norādiet “1” kā argumentu “maxsplit”.

text = "LinuxHint.līdz.mums "
tekstu.sadalīt (“.”, 1)

Iepriekš minētais kods atgriezīs “['LinuxHint', 'co.us '] ”kā izlaidi. Vienkārši kā otro argumentu norādiet to gadījumu skaitu, kuros vēlaties pārtraukt sadalīšanas procesu.

Ņemiet vērā, ka, ja ir secīgi atdalītāji, pēc pirmā sadalījuma atlikušajiem atdalītājiem tiks atgriezta tukša virkne (ja arguments “maxsplit” netiek izmantots):

text = "LinuxHint… com"
tekstu.sadalīt (".")

Iepriekš minētais kods kā izvadi atgriezīs “[” LinuxHint ”,” com ”]. Ja vēlaties noņemt tukšās virknes no iegūtā saraksta, varat izmantot šo saraksta izpratnes paziņojumu:

text = "LinuxHint… com"
rezultāts = teksts.sadalīt (".")
rezultāts = [vienums vienumam rezultātam, ja vienums != ""]
izdrukāt (rezultāts)

Pēc iepriekš minētā koda parauga izpildes jūs iegūsiet “[” LinuxHint ”,“ com ”] kā izvadi.

Ņemiet vērā, ka “split ()” metode pārvietojas no kreisās uz labo, lai virknes sadalītu vārdos. Ja vēlaties sadalīt virkni no labās uz kreiso pusi, tā vietā izmantojiet “rsplit ()”. Tās sintakse, lietojums un argumenti ir tieši tādi paši kā “split ()” metode.

Ja virknē netiek atrasts atdalītājs, izmantojot metodes “split ()” vai “rsplit ()”, sākotnējā virkne tiek atgriezta kā vienīgais saraksta elements.

Sadalīšanas metode

“Partition ()” metodi var izmantot virkņu sadalīšanai, un tā darbojas identiski “split ()” metodei ar dažām atšķirībām. Ievērojamākā atšķirība ir tā, ka tā saglabā atdalītāju un iekļauj to kā vienumu iegūtajā dubultā, kurā ir sadalīti vārdi. Tas ir īpaši noderīgi, ja vēlaties sadalīt virkni atkārtojamā objektā (šajā gadījumā dubultā), nenoņemot oriģinālās rakstzīmes. Apsveriet zemāk redzamo kodu:

text = "LinuxHint.com "
rezultāts = teksts.partition (".")
izdrukāt (rezultāts)

Iepriekš minētais koda paraugs atgriezīs “('LinuxHint', '.',' com ') ”kā izvadi. Ja vēlaties, lai rezultāts būtu saraksta tips, tā vietā izmantojiet šādu koda paraugu:

text = "LinuxHint.com "
rezultāts = saraksts (teksts.partition ("."))
izdrukāt (rezultāts)

Jums vajadzētu iegūt “['LinuxHint', '.',' com '] ”kā izvadi pēc iepriekš minētā koda parauga izpildīšanas.

Metodei “partition ()” ir nepieciešams tikai viens arguments ar nosaukumu “sep”. Lietotāji var norādīt jebkura garuma atdalītāju. Atšķirībā no “split ()” metodes, šis arguments ir obligāts, tāpēc atdalītāju nevar izlaist. Tomēr kā atdalītāju varat norādīt atstarpi.

Ņemiet vērā, ka nodalīšanas metode apstājas, kad atdalītājs tiek parādīts pirmo reizi. Tātad, ja virknē ir vairāki atdalītāji, metode “partition ()” ignorēs visus pārējos gadījumus. Šeit ir piemērs, kas to ilustrē:

text = "LinuxHint.līdz.mums "
rezultāts = saraksts (teksts.partition ("."))
izdrukāt (rezultāts)

Kodu paraugs radīs “[” LinuxHint ”,”.',' co.us '] ”kā izlaidi. Ja vēlaties sadalīt visos atdalītāja gadījumos un iekļaut atdalītāju arī galīgajā sarakstā, iespējams, būs jāizmanto “Regulārā izteiksme” vai “RegEx” modelis. Iepriekš minētajā piemērā varat izmantot RegEx modeli šādā veidā:

importa re
text = "LinuxHint.līdz.mums "
rezultāts = re.sadalīt ("(\.) ", teksts)
izdrukāt (rezultāts)

Jūs saņemsiet “['LinuxHint', '.',' co ','.',' us '] "kā izvadi pēc iepriekš minētā koda parauga izpildīšanas. Punkta rakstzīme ir izlaista iepriekš minētajā RegEx paziņojumā. Ņemiet vērā, ka, lai gan iepriekš minētais piemērs darbojas ar viena punkta rakstzīmi, tas var nedarboties ar sarežģītiem atdalītājiem un sarežģītām virknēm. Jums var būt jādefinē savs RegEx modelis atkarībā no lietošanas veida. Šeit ir tikai pieminēts piemērs, lai sniegtu priekšstatu par atdalītāja paturēšanas procesu galīgajā sarakstā, izmantojot RegEx paziņojumus.

Metode “partition ()” dažreiz var atstāt tukšas virknes, īpaši, ja atdalītājs nav atrodams sadalāmajā virknē. Šādos gadījumos tukšu virkņu noņemšanai varat izmantot saraksta izpratnes paziņojumus, kā paskaidrots iepriekš sadaļā “split ()”.

text = "LinuxHint"
rezultāts = saraksts (teksts.partition ("."))
rezultāts = [vienums vienumam rezultātam, ja vienums != ""]
izdrukāt (rezultāts)

Pēc iepriekš minētā koda izpildīšanas jums vajadzētu iegūt izvadi “['LinuxHint']”.

Secinājums

Vienkāršai un vienkāršai sadalīšanai varat izmantot “split ()” un “partition ()” metodes, lai iegūtu atkārtojamus tipus. Sarežģītām virknēm un atdalītājiem jums būs jāizmanto RegEx priekšraksti.

How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Izmantojot X-Mouse Button Control, atšķirīgi mainiet peles pogas atšķirīgai programmatūrai
Varbūt jums ir nepieciešams rīks, kas varētu mainīt peles vadību ar katru lietoto lietojumprogrammu. Ja tas tā ir, varat izmēģināt lietojumprogrammu a...
Microsoft Sculpt Touch bezvadu peles apskats
Es nesen lasīju par Microsoft Sculpt Touch bezvadu pele un nolēma to nopirkt. Pēc kāda laika izmantošanas es nolēmu dalīties savā pieredzē ar to. Šo b...