Када делите стринг раздвојен зарезима на листу у Питхон-у, ако нема размака између, радиће само сплит(). Ако има размака, корисно је комбиновати га са стрип() да бисте уклонили додатне размаке. Поред тога, коришћење записа за разумевање листе је паметан начин писања.
У овом одељку прво објашњавамо следеће.
- Поделите стринг са наведеним граничником и вратите га као листу
split()
- Уклоните додатне знакове са почетка и краја стринга.
strip()
- Нотација за разумевање листе за примену функција и метода на елементе листе.
Такође показује како да направите листу стрингова одвојених размацима и зарезима уклањањем размака, као што је приказано испод.one, two, three'
Поред тога, разговараћемо о следећем
- Како то добити као листу бројева
- Како користити јоин() да се придружите листи и поново претворите у стринг
split():Поделите стринг са наведеним граничником и вратите га као листу
Користећи метод сплит() за стрингове, можете поделити стринг са наведеним граничником и добити га као листу (низ). Наведени граничник се може навести следећим аргументом.sep
Ако је аргумент сеп изостављен и није наведен граничник, он дели стринг размацима и враћа листу. Узастопни размаци и табулатори ће такође поделити листу, тако да ако желите да направите листу стрингова раздвојених табулаторима, можете користити сплит() без аргумента.
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']
Ако је граничник наведен у аргументу сеп, он дели листу тим низом и враћа листу.
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, two, three' l = s.split(',') print(l) # ['one', ' two', ' three']
Можете користити зарез + размак као граничник на следећи начин, али то неће радити ако је број размака у оригиналном низу другачији., '
s = 'one, two, three' l = s.split(', ') print(l) # ['one', 'two', 'three'] s = 'one, two, three' l = s.split(', ') print(l) # ['one', 'two', ' three']
Метод стринг стрип(), који ће бити објашњен у наставку, може се користити за рад са два размака.
strip():Уклоните додатне знакове са почетка и краја стринга.
стрип() је метод за уклањање додатних знакова са почетка и краја стринга.
Ако је аргумент изостављен, враћа се нови стринг са уклоњеним размацима. Сам оригинални низ се не мења.
s = ' one ' print(s.strip()) # one print(s) # one
Ако је стринг наведен као аргумент, знакови садржани у стрингу биће уклоњени.
s = '-+-one-+-' print(s.strip('-+')) # one
У овом случају, размаци се не уклањају. Стога, ако желите да уклоните и размак, проследите низ који садржи размаке као аргумент, као што је приказано испод.-+ '
s = '-+- one -+-' print(s.strip('-+')) # one s = '-+- one -+-' print(s.strip('-+ ')) # one
стрип() рукује оба краја, али следеће функције су такође доступне.
lstrip()
:Обрадите само почетакrstrip()
:Обрадите само крај линије.
Нотација за разумевање листе: примени функције и методе на елементе листе
Ако желите да примените функцију или метод на елементе листе, паметно је да користите нотацију разумевања листе уместо петље фор ако желите да добијете листу на крају.
- Повезани чланци:Коришћење записа разумевања Питхон листе
Овде примењујемо стрип() на листу добијену дељењем стринга помоћу сплит(). Додатни размак у низу раздвојеним зарезима који садржи размак може се уклонити да би се направила листа.
s = 'one, two, three' l = [x.strip() for x in s.split(',')] print(l) # ['one', 'two', 'three']
Када се ово примени на празан стринг, може се добити листа са једним празним стрингом као елементом.
s = '' l = [x.strip() for x in s.split(',')] print(l) print(len(l)) # [''] # 1
Ако желите да добијете празну листу за празан стринг, можете подесити условну грану у нотацији разумевања листе.
s = '' l = [x.strip() for x in s.split(',') if not s == ''] print(l) print(len(l)) # [] # 0
one, , three'
Такође, ако недостаје елемент раздвојен зарезима, као што је горе описано, први метод ће га навести као празан елемент стринга.
s = 'one, , three' l = [x.strip() for x in s.split(',')] print(l) print(len(l)) # ['one', '', 'three'] # 3
Ако желите да занемарите делове који недостају, можете подесити условну грану у запису за разумевање листе.
s = 'one, ,three' l = [x.strip() for x in s.split(',') if not x.strip() == ''] print(l) print(len(l)) # ['one', 'three'] # 2
Добијте као листу бројева
Ако желите да добијете низ бројева раздвојених зарезима као листу бројева уместо низа, примените инт() или флоат() да конвертујете стринг у број у запису за разумевање листе.
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():Спојите листу и добијте је као стринг
У супротном обрасцу, ако желите да се придружите листи и добијете низове одвојене одређеним граничником, користите метод јоин().
Лако је погрешити, али имајте на уму да је јоин() метод стринга, а не метод листе. Листа је наведена као аргумент.
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
Можете га написати у једном реду на следећи начин.
s = 'one, two, three' s_new = '-'.join([x.strip() for x in s.split(',')]) print(s_new) # one-two-three
Ако само желите да промените фиксни граничник, лакше је да га замените методом реплаце().
s = 'one,two,three' s_new = s.replace(',', '+') print(s_new) # one+two+three