Kaip "Python" kalba gauti eilutės poaibį?

Ar yra būdas "Python" programoje sudaryti eilutės substringą, kad būtų galima gauti naują eilutę nuo trečiojo simbolio iki eilutės pabaigos?

Gal kaip myString[2:end]?

Jei palikti antrąją dalį reiškia 'iki galo', o jei paliekama pirmoji dalis, ar ji pradedama nuo pradžios?

Sprendimas
>>> x = "Hello World!"
>>> x[2:]
'llo World!'
>>> x[:2]
'He'
>>> x[:-2]
'Hello Worl'
>>> x[-2:]
'd!'
>>> x[2:-2]
'llo Worl'

Python šią koncepciją vadina "slicing" ir ji veikia ne tik eilutėse. Išsamų įvadą rasite čia.

Komentarai (0)

Atrodo, kad čia trūksta vieno pavyzdžio: visiško (negilaus) kopijavimo.

>>> x = "Hello World!"
>>> x
'Hello World!'
>>> x[:]
'Hello World!'
>>> x==x[:]
True
>>>

Tai įprasta idioma, skirta kurti sekos tipų (ne internuotų eilučių) kopijas, [:]. Negiliai kopijuojamas sąrašas, žr. straipsnį Python sąrašo dalių sintaksė, naudojama be jokios aiškios priežasties.

Komentarai (5)

Jūs teisingai supratote, išskyrus "end". Tai vadinama gabalėlių užrašymu. Jūsų pavyzdys turėtų būti toks:

new_sub_string = myString[2:]

Jei nepateiksite antrojo parametro, jis netiesiogiai bus eilutės pabaiga.

Komentarai (0)