Python, ji hev veqetîne da ku rêzek ji hev veqetandî veqetîne, cîhê spî jê bike û veguhezîne navnîşek

Dikan

Dema ku di Python-ê de rêzikek ji hev veqetandî di navnîşek de were dabeş kirin, heke di navberê de cîh tunebin, tenê split() dê bixebite. Ger cîh hebin, bikêr e ku meriv wê bi strip() re berhev bike da ku cîhên zêde jê bibe. Wekî din, karanîna navnîşa têgihîştina navnîşê ji bo nivîsandinê rêyek jîr e.

Di vê beşê de, em pêşî ravekirina jêrîn.

  • Rêzek bi veqetandek diyarkirî veqetînin û wê wekî navnîşek vegerîninsplit()
  • Karakterên zêde ji destpêk û dawiya rêzekê derxînin.strip()
  • Nîşana têgihîştina navnîşê ku fonksiyon û rêbazan li ser hêmanên navnîşê bicîh tîne.

Di heman demê de ew nîşan dide ku meriv çawa navnîşek rêzikên ku ji hêla valahiyan û koman ve têne veqetandin bi rakirina cîhan têne çêkirin, wekî ku li jêr tê xuyang kirin.
one, two, three'

Wekî din, em ê li ser jêrîn nîqaş bikin

  • Meriv çawa wekî navnîşek hejmaran digire
  • Meriv çawa join() bikar tîne da ku beşdarî navnîşek bibe û wê dîsa bike rêzek

split():Rêzek bi veqetandek diyarkirî veqetînin û wê wekî navnîşek vegerînin

Bi karanîna rêbaza split() ji bo rêzan, hûn dikarin rêzek bi veqetandek diyarkirî veqetînin û wê wekî navnîşek (array) bistînin. Veqetandeka diyarkirî dikare bi argumana jêrîn were destnîşan kirin.sep

Ger argumana sep ji holê rabe û veqetandek neyê diyar kirin, ew rêzikê li gorî valahiyan parçe dike û navnîşek vedigerîne. Cîh û tabloyên li pey hev jî dê navnîşê ji hev veqetînin, ji ber vê yekê heke hûn dixwazin navnîşek rêzikên tabloyên veqetandî çêbikin, hûn dikarin bêyî argumanê split() bikar bînin.

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

Ger di argumana sep de veqetandek were diyar kirin, ew navnîşê li ser wê rêzê dabeş dike û navnîşek vedigerîne.

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

Di warê rêzika ji hev veqetandî de, heke cîhê spî yê zêde tune be, pirsgirêk tune ye, lê heke hûn split() bi xêzek wekî veqetandek ji bo rêzika ku bi komma + cîhê spî ji hev veqetandî bimeşînin, hûn ê biqedin. bi navnîşek rêzikên bi cîhê spî yê ku di destpêkê de maye.

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

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

Hûn dikarin komma + valahiyek wekî veqetandek wekî jêrîn bikar bînin, lê heke hejmara valahiyên di rêza orîjînal de cûda be ew ê nexebite., '

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

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

Rêbaza rêzikê strip(), ku dê paşê were ravekirin, dikare ji bo mijûlbûna bi du cîhan re were bikar anîn.

strip():Karakterên zêde ji destpêk û dawiya rêzekê derxînin.

strip() rêbazek e ku meriv tîpên zêde ji serî û dawiya rêzikê jê dike.

Ger argûman ji holê were rakirin, rêzek nû tê vegerandin û tîpên cîhê spî jêbirin. Rêza orîjînal bi xwe nayê guhertin.

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

print(s)
#   one  

Ger rêzek wekî arguman were destnîşan kirin, dê tîpên ku di rêzikê de hene werin rakirin.

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

Di vê rewşê de, cîh nayê rakirin. Ji ber vê yekê, heke hûn dixwazin cîhê spî jî jê bikin, wekî ku li jêr tê xuyang kirin rêzek cîhan wekî argumanek derbas bikin.-+ '

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

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

strip () her du dawiyan digire, lê fonksiyonên jêrîn jî hene.

  • lstrip():Pêvajo tenê destpêkê
  • rstrip():Tenê dawiya rêzê pêvajoyê bikin.

Nîşana têgihîştina navnîşê: fonksiyon û rêbazan li ser hêmanên navnîşê bicîh bikin

Heke hûn dixwazin fonksiyonek an rêbazek li ser hêmanên navnîşek bicîh bikin, heke hûn dixwazin di dawiyê de navnîşê bi dest bixin, biaqil e ku hûn nîşaneya têgihîştina navnîşê li şûna lêdana for-ê bikar bînin.

Li vir, em strip() li navnîşa ku bi dabeşkirina rêzika bi split() ve hatî wergirtin bicîh dikin. Cihê spî yê zêde di rêzikek ji hev veqetandî ya ku tê de cîhê spî tê de dikare were rakirin da ku navnîşek çêbike.

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

Dema ku ev li ser rêzek vala were sepandin, navnîşek bi yek rêzek vala wekî hêman dikare were bidestxistin.

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

Heke hûn dixwazin ji bo rêzek vala navnîşek vala bistînin, hûn dikarin di navnîşa têgihîştina navnîşê de şaxek şertî saz bikin.

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

one, , three'
Di heman demê de, heke hêmanek ji hev veqetandî wenda be, wekî ku li jor hatî destnîşan kirin, rêbaza yekem dê wê wekî hêmanek rêzek vala navnîş bike.

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

Heke hûn dixwazin parçeyên winda paşguh bikin, hûn dikarin di navnîşa têgihîştina navnîşê de şaxek şertî saz bikin.

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

Wek navnîşek hejmaran bistînin

Heke hûn dixwazin li şûna rêzikê rêzikek jimareyî ya ji hev veqetandî wekî navnîşek jimareyan werbigirin, int() an jî float() bicîh bikin da ku rêzikê di navnîşa têgihîştina navnîşê de veguhezînin hejmarek.

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():Lîsteyek hev bikin û wê wekî rêzek bistînin

Di şêweya berevajî de, heke hûn dixwazin beşdarî navnîşek bibin û rêzikên ku ji hêla veqetandek taybetî ve têne veqetandin bistînin, rêbaza join() bikar bînin.

Çewtiyek hêsan e, lê bala xwe bidin ku join() rêbazek rêzek e, ne rêbazek navnîşê ye. Di lîsteyê de wek argûman hatiye diyarkirin.

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

Hûn dikarin wê di yek rêzek jêrîn de binivîsin.

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

Heke hûn tenê dixwazin veqetandinek sabît biguhezînin, guheztina wê bi rêbaza şûna() re hêsantir e.

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