Python, vergüllə ayrılmış sətri bölmək üçün bölün, boşluqları silin və siyahıya çevirin

Biznes

Vergüllə ayrılmış sətri Python-da siyahıya bölərkən, aralarında boşluq yoxdursa, sadəcə olaraq split() işləyəcək. Boşluqlar varsa, əlavə boşluqları aradan qaldırmaq üçün onu strip() ilə birləşdirmək faydalıdır. Bundan əlavə, siyahı başa düşmə notasiyasından istifadə yazmaq üçün ağıllı bir yoldur.

Bu bölmədə əvvəlcə aşağıdakıları izah edirik.

  • Müəyyən edilmiş ayırıcı ilə sətri bölün və siyahı kimi qaytarınsplit()
  • Sətin əvvəlindən və sonundan əlavə simvolları silin.strip()
  • Elementləri siyahıya almaq üçün funksiyaları və metodları tətbiq etmək üçün siyahı başa düşmə notasiyası.

O, həmçinin aşağıda göstərildiyi kimi boşluqları silməklə boşluq və vergüllə ayrılmış sətirlərin siyahısının necə hazırlanacağını göstərir.
one, two, three'

Bundan əlavə, aşağıdakıları müzakirə edəcəyik

  • Onu nömrələr siyahısı kimi necə əldə etmək olar
  • Siyahıya qoşulmaq və onu yenidən sətir etmək üçün join() funksiyasından necə istifadə etmək olar

split():Müəyyən edilmiş ayırıcı ilə sətri bölün və siyahı kimi qaytarın

Sətirlər üçün split() metodundan istifadə edərək, sətri müəyyən edilmiş ayırıcı ilə ayıra və onu siyahı (massiv) kimi əldə edə bilərsiniz. Göstərilən ayırıcı aşağıdakı arqumentlə müəyyən edilə bilər.sep

Əgər sep arqumenti buraxılıbsa və heç bir ayırıcı göstərilməyibsə, o, sətri boşluqlara bölür və siyahını qaytarır. Ardıcıl boşluqlar və tablar da siyahını böləcək, buna görə də nişanla ayrılmış sətirlərin siyahısını yaratmaq istəyirsinizsə, arqument olmadan split() funksiyasından istifadə edə bilərsiniz.

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']

Sep arqumentində ayırıcı göstərilibsə, o, siyahını həmin sətirlə bölür və siyahını qaytarır.

s = 'one::two::three'
l = s.split('::')
print(l)
# ['one', 'two', 'three']

Vergüllə ayrılmış sətir vəziyyətində, əlavə boşluq yoxdursa, problem yoxdur, lakin vergül + ağ boşluq ilə ayrılmış sətir üçün ayırıcı olaraq split() funksiyasını vergüllə işlətsəniz, bitirəcəksiniz. əvvəlində boşluq qalan sətirlərin siyahısı ilə yuxarı.

s = 'one,two,three'
l = s.split(',')
print(l)
# ['one', 'two', 'three']

s = 'one, two, three'
l = s.split(',')
print(l)
# ['one', ' two', ' three']

Aşağıdakı kimi ayırıcı kimi vergül + boşluqdan istifadə edə bilərsiniz, lakin orijinal sətirdəki boşluqların sayı fərqli olarsa, bu işləməyəcək., '

s = 'one, two, three'
l = s.split(', ')
print(l)
# ['one', 'two', 'three']

s = 'one, two,  three'
l = s.split(', ')
print(l)
# ['one', 'two', ' three']

Sonra izah ediləcək string metodu strip() iki boşluqla işləmək üçün istifadə edilə bilər.

strip():Sətin əvvəlindən və sonundan əlavə simvolları silin.

strip() sətrin əvvəlindən və sonundan əlavə simvolları silmək üsuludur.

Arqument buraxılıbsa, boşluq simvolları silinmiş yeni sətir qaytarılır. Orijinal simin özü dəyişdirilmir.

s = '  one  '
print(s.strip())
# one

print(s)
#   one  

Əgər sətir arqument kimi göstərilibsə, sətirdə olan simvollar silinəcək.

s = '-+-one-+-'
print(s.strip('-+'))
# one

Bu vəziyyətdə boşluqlar silinmir. Buna görə də, boşluqları da silmək istəyirsinizsə, aşağıda göstərildiyi kimi boşluqlar daxil olmaqla sətri arqument kimi ötürün.-+ '

s = '-+- one -+-'
print(s.strip('-+'))
#  one 

s = '-+- one -+-'
print(s.strip('-+ '))
# one

strip() hər iki ucunu idarə edir, lakin aşağıdakı funksiyalar da mövcuddur.

  • lstrip():Yalnız başlanğıcı emal edin
  • rstrip():Yalnız xəttin sonunu emal edin.

Siyahının başa düşülməsi qeydi: elementləri siyahıya salmaq üçün funksiyaları və metodları tətbiq edin

Siyahının elementlərinə funksiya və ya metod tətbiq etmək istəyirsinizsə, siyahının sonunda əldə etmək istəyirsinizsə, for döngüsü əvəzinə siyahı başa düşmə notasiyasından istifadə etmək ağıllıdır.

Burada sətri split() ilə bölməklə əldə edilən siyahıya strip() tətbiq edirik. İçərisində boşluq olan vergüllə ayrılmış sətirdəki əlavə boşluq siyahı yaratmaq üçün silinə bilər.

s = 'one, two, three'
l = [x.strip() for x in s.split(',')]
print(l)
# ['one', 'two', 'three']

Bu, boş bir sətirə tətbiq edildikdə, element kimi bir boş sətir olan bir siyahı əldə edilə bilər.

s = ''
l = [x.strip() for x in s.split(',')]
print(l)
print(len(l))
# ['']
# 1

Boş sətir üçün boş siyahı əldə etmək istəyirsinizsə, siyahının başa düşülməsi qeydində şərti budaq qura bilərsiniz.

s = ''
l = [x.strip() for x in s.split(',') if not s == '']
print(l)
print(len(l))
# []
# 0

one, , three'
Həmçinin, yuxarıda göstərildiyi kimi vergüllə ayrılmış element yoxdursa, birinci üsul onu boş sətir elementi kimi siyahıya salacaq.

s = 'one, , three'
l = [x.strip() for x in s.split(',')]
print(l)
print(len(l))
# ['one', '', 'three']
# 3

Əgər çatışmayan hissələri görməməzlikdən gəlmək istəyirsinizsə, siyahının başa düşülməsi qeydində şərti budaq qura bilərsiniz.

s = 'one, ,three'
l = [x.strip() for x in s.split(',') if not x.strip() == '']
print(l)
print(len(l))
# ['one', 'three']
# 2

Nömrələrin siyahısı kimi alın

Əgər sətir əvəzinə nömrələr siyahısı kimi vergüllə ayrılmış nömrələr sətrini əldə etmək istəyirsinizsə, sətri siyahı başa düşmə notasiyasındakı rəqəmə çevirmək üçün int() və ya float() tətbiq edin.

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():Siyahını birləşdirin və onu sətir kimi əldə edin

Əks nümunədə, siyahıya qoşulmaq və müəyyən bir ayırıcı ilə ayrılmış sətirləri əldə etmək istəyirsinizsə, join() metodundan istifadə edin.

Səhv etmək asandır, lakin qeyd edin ki, join() siyahı metodu deyil, sətir metodudur. Siyahı arqument kimi göstərilib.

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

Bunu bir sətirdə aşağıdakı kimi yaza bilərsiniz.

s = 'one, two,  three'
s_new = '-'.join([x.strip() for x in s.split(',')])
print(s_new)
# one-two-three

Əgər siz sadəcə olaraq sabit ayırıcını dəyişmək istəyirsinizsə, onu əvəz () metodu ilə əvəz etmək daha asandır.

s = 'one,two,three'
s_new = s.replace(',', '+')
print(s_new)
# one+two+three