Czy istnieje sposób na podciąganie napisu w Pythonie, aby uzyskać nowy ciąg od 3 znaku do końca ciągu?
Może jak myString[2:end]
?
Tak, to faktycznie działa, jeśli przypisujesz lub wiążesz nazwę end
, do stałego singletonu None
:
>>> end = None
>>> myString = '1234567890'
>>> myString[2:end]
'34567890'
Notacja wycinka zawiera 3 ważne argumenty:
Ich wartości domyślne, gdy nie są podane, to None
- ale możemy je przekazać jawnie:
>>> stop = step = None
>>> start = 2
>>> myString[start:stop:step]
'34567890'
Jeśli opuszczenie drugiej części oznacza „do końca”, jeśli opuścisz pierwszą część, to czy zacznie się od początku?
Tak, na przykład:
>>> start = None
>>> stop = 2
>>> myString[start:stop:step]
'12'
Zauważ, że uwzględniamy start w wycinku, ale wchodzimy tylko do zatrzymania, ale nie wyłączamy go.
Gdy krok jest None
, domyślnie plasterek używa 1
kroku. Jeśli zrobisz krok z ujemną liczbą całkowitą, Python jest wystarczająco inteligentny, aby przejść od końca do początku.
>>> myString[::-1]
'0987654321'
Objaśniam notację plastra bardzo szczegółowo w mojej odpowiedzi na wyjaśnienie notacji plastra Pytanie.