Kur ndani një varg të ndarë me presje në një listë në Python, nëse nuk ka hapësira në mes, thjesht split() do të funksionojë. Nëse ka hapësira, është e dobishme ta kombinoni atë me strip() për të hequr hapësirat shtesë. Për më tepër, përdorimi i shënimit të kuptimit të listës është një mënyrë e zgjuar për të shkruar.
Në këtë pjesë, ne fillimisht shpjegojmë sa vijon.
- Ndani një varg me një kufizues të caktuar dhe kthejeni atë si listë
split()
- Hiqni karakteret shtesë nga fillimi dhe fundi i një vargu.
strip()
- Lista e shënimeve të të kuptuarit për të aplikuar funksionet dhe metodat në elementet e listës.
Ai gjithashtu tregon se si të krijoni një listë të vargjeve të ndara me hapësira dhe presje duke hequr hapësirat, siç tregohet më poshtë.one, two, three'
Përveç kësaj, ne do të diskutojmë në vijim
- Si ta merrni atë si një listë numrash
- Si të përdorni join() për t’u bashkuar me një listë dhe për ta bërë atë një varg përsëri
- split():Ndani një varg me një kufizues të caktuar dhe kthejeni atë si listë
- strip():Hiqni karakteret shtesë nga fillimi dhe fundi i një vargu.
- Shënimi i të kuptuarit të listës: aplikoni funksione dhe metoda për elementët e listës
- Merrni si një listë numrash
- join():Bashkoni një listë dhe merrni atë si një varg
split():Ndani një varg me një kufizues të caktuar dhe kthejeni atë si listë
Duke përdorur metodën split() për vargjet, mund të ndani një varg me një kufizues të caktuar dhe ta merrni atë si një listë (array). Kufizuesi i specifikuar mund të specifikohet me argumentin e mëposhtëm.sep
Nëse argumenti sep hiqet dhe nuk specifikohet asnjë kufizues, ai ndan vargun sipas hapësirave dhe kthen një listë. Hapësirat dhe skedat e njëpasnjëshme gjithashtu do të ndajnë listën, kështu që nëse dëshironi të bëni një listë të vargjeve të kufizuara me skeda, mund të përdorni split() pa argument.
s = 'one two three' l = s.split() print(l) # ['one', 'two', 'three'] s = 'one two three' l = s.split() print(l) # ['one', 'two', 'three'] s = 'one\ttwo\tthree' l = s.split() print(l) # ['one', 'two', 'three']
Nëse një përcaktues është specifikuar në argumentin sep, ai e ndan listën me atë varg dhe kthen një listë.
s = 'one::two::three' l = s.split('::') print(l) # ['one', 'two', 'three']
Në rastin e një vargu të ndarë me presje, nëse nuk ka hapësirë shtesë të bardhë, nuk ka problem, por nëse ekzekutoni split() me një presje si ndarës për një varg të ndarë me presje + hapësirë të bardhë, do të përfundoni lart me një listë vargjesh me hapësirë të bardhë të mbetur në fillim.
s = 'one,two,three' l = s.split(',') print(l) # ['one', 'two', 'three'] s = 'one, two, three' l = s.split(',') print(l) # ['one', ' two', ' three']
Ju mund të përdorni presje + hapësirë si ndarës si më poshtë, por nuk do të funksionojë nëse numri i hapësirave në vargun origjinal është i ndryshëm., '
s = 'one, two, three' l = s.split(', ') print(l) # ['one', 'two', 'three'] s = 'one, two, three' l = s.split(', ') print(l) # ['one', 'two', ' three']
Metoda string strip(), e cila do të shpjegohet më pas, mund të përdoret për të trajtuar dy hapësira.
strip():Hiqni karakteret shtesë nga fillimi dhe fundi i një vargu.
strip() është një metodë për të hequr karakteret shtesë nga fillimi dhe fundi i një vargu.
Nëse argumenti hiqet, një varg i ri kthehet me karakteret e hapësirës së bardhë të hequr. Vetë vargu origjinal nuk është ndryshuar.
s = ' one ' print(s.strip()) # one print(s) # one
Nëse një varg specifikohet si argument, karakteret që përmbahen në varg do të hiqen.
s = '-+-one-+-' print(s.strip('-+')) # one
Në këtë rast, hapësirat nuk hiqen. Prandaj, nëse dëshironi të hiqni edhe hapësirën e bardhë, kaloni një varg që përfshin hapësira si argument, siç tregohet më poshtë.-+ '
s = '-+- one -+-' print(s.strip('-+')) # one s = '-+- one -+-' print(s.strip('-+ ')) # one
strip() trajton të dy skajet, por funksionet e mëposhtme janë gjithashtu të disponueshme.
lstrip()
:Procedoni vetëm në fillimrstrip()
:Përpunoni vetëm fundin e rreshtit.
Shënimi i të kuptuarit të listës: aplikoni funksione dhe metoda për elementët e listës
Nëse dëshironi të aplikoni një funksion ose metodë në elementët e një liste, është e mençur të përdorni shënimin e kuptimit të listës në vend të ciklit for nëse dëshironi të merrni listën në fund.
- Artikuj të ngjashëm:Përdorimi i shënimit të kuptimit të listës Python
Këtu, ne aplikojmë strip() në listën e marrë duke ndarë vargun me split(). Hapësira e bardhë shtesë në një varg të ndarë me presje që përmban hapësirë të bardhë mund të hiqet për të krijuar një listë.
s = 'one, two, three' l = [x.strip() for x in s.split(',')] print(l) # ['one', 'two', 'three']
Kur kjo aplikohet në një varg bosh, mund të merret një listë me një varg të vetëm bosh si element.
s = '' l = [x.strip() for x in s.split(',')] print(l) print(len(l)) # [''] # 1
Nëse dëshironi të merrni një listë boshe për një varg bosh, mund të konfiguroni një degë të kushtëzuar në shënimin e kuptimit të listës.
s = '' l = [x.strip() for x in s.split(',') if not s == ''] print(l) print(len(l)) # [] # 0
one, , three'
Gjithashtu, nëse mungon një element i ndarë me presje, siç përshkruhet më sipër, metoda e parë do ta listojë atë si një element vargu bosh.
s = 'one, , three' l = [x.strip() for x in s.split(',')] print(l) print(len(l)) # ['one', '', 'three'] # 3
Nëse dëshironi të shpërfillni pjesët që mungojnë, mund të konfiguroni një degë të kushtëzuar në shënimin e kuptimit të listës.
s = 'one, ,three' l = [x.strip() for x in s.split(',') if not x.strip() == ''] print(l) print(len(l)) # ['one', 'three'] # 2
Merrni si një listë numrash
Nëse dëshironi të merrni një varg numrash të ndarë me presje si një listë numrash në vend të një vargu, aplikoni int() ose float() për të kthyer vargun në një numër në shënimin e kuptimit të listës.
s = '1, 2, 3, 4' l = [x.strip() for x in s.split(',')] print(l) print(type(l[0])) # ['1', '2', '3', '4'] # <class 'str'> s = '1, 2, 3, 4' l = [int(x.strip()) for x in s.split(',')] print(l) print(type(l[0])) # [1, 2, 3, 4] # <class 'int'>
join():Bashkoni një listë dhe merrni atë si një varg
Në modelin e kundërt, nëse dëshironi të bashkoheni me një listë dhe të merrni vargje të ndara nga një kufizues specifik, përdorni metodën join().
Është e lehtë të bësh një gabim, por vini re se join() është një metodë string, jo një metodë liste. Lista është specifikuar si argument.
s = 'one, two, three' l = [x.strip() for x in s.split(',')] print(l) # ['one', 'two', 'three'] print(','.join(l)) # one,two,three print('::'.join(l)) # one::two::three
Mund ta shkruani në një rresht si më poshtë.
s = 'one, two, three' s_new = '-'.join([x.strip() for x in s.split(',')]) print(s_new) # one-two-three
Nëse thjesht dëshironi të ndryshoni një kufizues fiks, është më e lehtë ta zëvendësoni atë me metodën e zëvendësimit().
s = 'one,two,three' s_new = s.replace(',', '+') print(s_new) # one+two+three