Jak v jazyce Python získám podřetězec řetězce?

Existuje způsob, jak v jazyce Python vytvořit podřetězec řetězce, abyste získali nový řetězec od třetího znaku do konce řetězce?

Třeba jako myString[2:end]?

Jestli vynechání druhé části znamená 'až do konce', a když vynecháte první část, začne to od začátku?

Řešení
>>> x = "Hello World!"
>>> x[2:]
'llo World!'
>>> x[:2]
'He'
>>> x[:-2]
'Hello Worl'
>>> x[-2:]
'd!'
>>> x[2:-2]
'llo Worl'

Python tento koncept nazývá "slicing" a funguje nejen na řetězcích. Podívejte se zde na obsáhlý úvod.

Komentáře (0)

Zdá se, že zde chybí jeden příklad: úplná (mělká) kopie.

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

Jedná se o běžný idiom pro vytvoření kopie sekvenčních typů (nikoli internetizovaných řetězců), [:]. Mělké kopírování seznamu, viz Syntaxe Pythonu pro řezání seznamů používaná bez zjevného důvodu.

Komentáře (5)

Až na slovo "konec" to máte správně. Říká se tomu plátkový zápis. Váš příklad by měl znít:

new_sub_string = myString[2:]

Pokud vynecháte druhý parametr, je to implicitně konec řetězce.

Komentáře (0)