Үтірмен бөлінген жолды Python тіліндегі тізімге бөлгенде, арасында бос орын болмаса, жай ғана split() жұмыс істейді. Егер бос орындар болса, қосымша бос орындарды жою үшін оны strip() функциясымен біріктіру пайдалы. Сонымен қатар, тізімді түсіну белгісін пайдалану жазудың ақылды әдісі болып табылады.
Бұл бөлімде біз алдымен келесіні түсіндіреміз.
- Белгіленген бөлгішпен жолды бөліп, оны тізім ретінде қайтарыңыз
split()
- Жолдың басынан және соңынан қосымша таңбаларды алып тастаңыз.
strip()
- Тізім элементтеріне функциялар мен әдістерді қолдану үшін тізімді түсіну белгісі.
Ол сонымен қатар төменде көрсетілгендей бос орындарды алып тастау арқылы бос орындар мен үтірлермен бөлінген жолдар тізімін жасау жолын көрсетеді.one, two, three'
Сонымен қатар, біз келесілерді талқылаймыз
- Оны сандар тізімі ретінде қалай алуға болады
- Тізімге қосылу және оны қайтадан жол ету үшін join() әдісін қалай пайдалануға болады
split():Белгіленген бөлгішпен жолды бөліп, оны тізім ретінде қайтарыңыз
Жолдар үшін split() әдісін пайдалану арқылы жолды белгіленген бөлгішпен бөлуге және оны тізім (массив) ретінде алуға болады. Көрсетілген бөлгішті келесі аргумент арқылы көрсетуге болады.sep
Егер sep аргументі алынып тасталса және бөлгіш көрсетілмесе, ол жолды бос орындарға бөліп, тізімді қайтарады. Қатарлы бос орындар мен қойындылар да тізімді бөледі, сондықтан қойындымен бөлінген жолдардың тізімін жасағыңыз келсе, split() функциясын аргументсіз пайдалануға болады.
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']
Үтірмен бөлінген жол жағдайында, қосымша бос орын болмаса, мәселе болмайды, бірақ үтір + ақ бос орынмен бөлінген жолдың бөлгіші ретінде split() функциясын үтірмен іске қоссаңыз, сіз аяқтайсыз. басында бос орын қалдырылған жолдар тізімімен жоғары.
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() екі бос орынмен жұмыс істеу үшін пайдалануға болады.
strip():Жолдың басынан және соңынан қосымша таңбаларды алып тастаңыз.
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
strip() екі ұшын өңдейді, бірақ келесі функциялар да қол жетімді.
lstrip()
:Тек басын өңдеңізrstrip()
:Тек жолдың соңын өңдеңіз.
Тізімді түсіну белгісі: тізім элементтеріне функциялар мен әдістерді қолдану
Тізім элементтеріне функцияны немесе әдісті қолданғыңыз келсе, тізімді соңында алғыңыз келсе, for циклінің орнына тізімді түсіну белгісін қолданған дұрыс.
- Қатысты мақалалар:Python тізімді түсіну белгілерін пайдалану
Мұнда жолды split() арқылы бөлу арқылы алынған тізімге strip() қолданамыз. Құрамында бос орын бар үтірмен бөлінген жолдағы қосымша бос орынды тізім жасау үшін жоюға болады.
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
Сандар тізімі ретінде алыңыз
Жолдың орнына сандар тізімі ретінде үтірмен бөлінген сандар жолын алғыңыз келсе, жолды тізімді түсіну белгісіндегі санға түрлендіру үшін int() немесе float() қолданыңыз.
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():Тізімді біріктіріп, оны жол ретінде алыңыз
Қарама-қарсы үлгіде, тізімге қосылғыңыз келсе және белгілі бір бөлгішпен бөлінген жолдарды алғыңыз келсе, join() әдісін пайдаланыңыз.
Қате жасау оңай, бірақ 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