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?
>>> 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.
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.
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.