Python-da sətirlərin birləşdirilməsi və birləşdirilməsi: + operatorlar, birləşmə funksiyaları və s.

Biznes

Aşağıda Python-da str sətirini necə birləşdirməyin və birləşdirməyin təsviri verilmişdir.

  • Çoxlu sətirlərin birləşdirilməsi və birləşdirilməsi:+,+=operator
  • Rəqəmləri və sətirləri birləşdirin və birləşdirin:+,+=operator,str(),format(),f simli
  • Sətirlərin siyahılarını (massivlərini) bir sətirdə birləşdirin və birləşdirin:join()
  • Nömrələrin siyahılarını (massivlərini) bir sətirdə birləşdirin və birləşdirin:join(),str()

Çoxlu sətirlərin birləşdirilməsi və birləşdirilməsi:+,+=operator

əlaqə:+operator

++ operatoru aşağıdakı sətir hərfi və sətir dəyişənlərini birləşdirmək üçün istifadə edilə bilər

  • …’
  • “…”
s = 'aaa' + 'bbb' + 'ccc'
print(s)
# aaabbbccc

s1 = 'aaa'
s2 = 'bbb'
s3 = 'ccc'

s = s1 + s2 + s3
print(s)
# aaabbbccc

s = s1 + s2 + s3 + 'ddd'
print(s)
# aaabbbcccddd

əlaqə:+=operator

Kumulyativ təyin operatoru olan += operatorundan da istifadə etmək olar. Sol tərəfdəki sətir dəyişəni sağ tərəfdəki sətirlə birləşdirilir və təyin edilir və yenilənir.

s1 += s2
print(s1)
# aaabbb

Əgər sətir dəyişəninin sonuna sətir əlavə etmək istəyirsinizsə, sadəcə olaraq += operatoru ilə sətir dəyişənini və hər hansı bir sətir literalını (və ya başqa sətir dəyişənini) emal edin.

s = 'aaa'

s += 'xxx'
print(s)
# aaaxxx

Sətir hərfilərin ardıcıl birləşdirilməsi

Əgər siz sadəcə olaraq sətir hərflərini yan-yana yazsanız, sətir hərfləri birləşdiriləcək.

s = 'aaa''bbb''ccc'
print(s)
# aaabbbccc

İki sətir arasında boşluq və ya tərs kəsişmə xəttinin kəsilməsi (davam hesab olunur) məqbuldur.

s = 'aaa'  'bbb'    'ccc'
print(s)
# aaabbbccc

s = 'aaa'\
    'bbb'\
    'ccc'
print(s)
# aaabbbccc

Kodda çoxlu sətirlərə uzun sətirlər yazmaq üçün bundan istifadə etmək üçün bir texnika var.

Bu yazı metodu sətir dəyişənləri üçün mümkün deyil.

# s = s1 s2 s3
# SyntaxError: invalid syntax

Rəqəm və sətir birləşmə/birləşdirmə:+,+=operator,str(),format(),f simli

Fərqli tipli A + əməliyyatı xəta ilə nəticələnir.

s1 = 'aaa'
s2 = 'bbb'

i = 100
f = 0.25

# s = s1 + i
# TypeError: must be str, not int

Əgər siz ədədi dəyəri (məsələn, tam tipli int və ya üzən nöqtə tipli float) sətirlə birləşdirmək istəyirsinizsə, rəqəmli dəyəri str() ilə sətir tipinə çevirin və sonra onları + operatoru (və ya += operatoru) ilə birləşdirin. ).

s = s1 + '_' + str(i) + '_' + s2 + '_' + str(f)
print(s)
# aaa_100_bbb_0.25

Əgər nömrənin sıfır doldurulması və ya onluq yerləri kimi formatını çevirmək istəyirsinizsə, format() funksiyasından və ya sətir metodu formatından() istifadə edin.

s = s1 + '_' + format(i, '05') + '_' + s2 + '_' + format(f, '.5f')
print(s)
# aaa_00100_bbb_0.25000

s = '{}_{:05}_{}_{:.5f}'.format(s1, i, s2, f)
print(s)
# aaa_00100_bbb_0.25000

Əlbəttə ki, formatlaşdırmadan dəyişənin dəyərini birbaşa sətirdə yerləşdirmək də mümkündür. Bunu yazmaq + operatorundan istifadə etməkdən daha asandır.

s = '{}_{}_{}_{}'.format(s1, i, s2, f)
print(s)
# aaa_100_bbb_0.25

Formatın necə təyin ediləcəyi ilə bağlı ətraflı məlumat üçün aşağıdakı məqaləyə baxın.

Python 3.6-dan bəri f-strings (f-string) adlı mexanizm də təqdim edilmişdir ki, onun yazılması format() ilə müqayisədə daha sadədir.

s = f'{s1}_{i:05}_{s2}_{f:.5f}'
print(s)
# aaa_00100_bbb_0.25000

s = f'{s1}_{i}_{s2}_{f}'
print(s)
# aaa_100_bbb_0.25

Sətirlərin siyahılarını (massivlərini) birləşdirin və birləşdirin:join()

Sətirlərin siyahısını bir sətirdə birləşdirmək üçün join() string metodundan istifadə edilə bilər.

Aşağıda onu necə yazmaq olar.

'String to be inserted between'.join([List of strings to be concatenated])

arasına daxil etmək üçün sətir’ ilə join() metoduna zəng edin və [birləşdirmək üçün sətirlərin siyahısı] arqument kimi keçirin.

Boş sətirdən istifadə edilərsə, [birləşdiriləcək sətirlərin siyahısı] sadəcə birləşdiriləcək, vergül istifadə edilərsə, sətirlər vergüllə ayrılacaq və yeni sətir simvolu istifadə edilərsə, hər bir sətir elementi yeni sətirə çəkiləcək.

l = ['aaa', 'bbb', 'ccc']

s = ''.join(l)
print(s)
# aaabbbccc

s = ','.join(l)
print(s)
# aaa,bbb,ccc

s = '-'.join(l)
print(s)
# aaa-bbb-ccc

s = '\n'.join(l)
print(s)
# aaa
# bbb
# ccc

Burada yalnız siyahının nümunəsi verilsə də, dəstlər kimi digər təkrarlana bilən obyektlər də qoşulmaq () üçün arqumentlər kimi göstərilə bilər.

Birləşmədən () fərqli olaraq, split() xüsusi bir ayırıcı ilə ayrılmış sətri bölmək və onu siyahı kimi əldə etmək üçün istifadə olunur.

Nömrələrin siyahılarını (massivlərini) sətirlər kimi birləşdirin və birləşdirin:join(),str()

Birləşmə () arqumenti elementləri sətir olmayan siyahıdırsa, xəta baş verir.

l = [0, 1, 2]

# s = '-'.join(l)
# TypeError: sequence item 0: expected str instance, int found

Rəqəmlər siyahısını bir sətirdə birləşdirmək üçün nömrələri sətirə çevirmək üçün siyahı başa düşmə notasiyasının hər bir elementinə str() funksiyasını tətbiq edin və sonra onları join() ilə birləşdirin.

s = '-'.join([str(n) for n in l])
print(s)
# 0-1-2

O, həmçinin siyahı anlamalarının generator versiyası olan generator ifadəsi kimi də yazıla bilər. Generator ifadələri mötərizə içərisindədir, lakin generator ifadəsi funksiya və ya metodun yeganə arqumentidirsə, mötərizələr buraxıla bilər.

s = '-'.join((str(n) for n in l))
print(s)
# 0-1-2

s = '-'.join(str(n) for n in l)
print(s)
# 0-1-2

Generator ifadələrinin, ümumiyyətlə, siyahının başa düşülməsindən daha az yaddaş istifadəsinin üstünlüyü var, lakin generator ifadələrindən istifadənin xüsusi üstünlüyü yoxdur, çünki join() daxili emalında generatorları siyahılara çevirir. Əslində, əvvəldən siyahı anlamalarından istifadə etmək bir qədər sürətlidir.

Siyahı anlayışları və generator ifadələri haqqında daha çox məlumat üçün aşağıdakı məqaləyə baxın.

Copied title and URL