網頁

2019/8/18

Python 字串分割截取子字串

Python分割字串(String slicing)的語法如下。

Python的字串str使用索引(index)位置來指定分割位置。

下面是基本的字串分割範例。如果是擷取子字串(substring),則開頭索引位置的字含,結尾索引位置的字不含。

s = "hello world"
print(s[0:2]) # he            # 截取index 0 到 index 2(不含) 的字
print(s)      # hello world   # 
print(s[:3])  # hel           # 截取 開頭的字 到 index 3(不含) 的字
print(s[3:])  # lo world      # 截取 index 3 到 最後的字
print(s[-1])  # d             # 截取 index -1 的字
print(s[-3:]) # rld           # 截取 index -3 到 最後的字
print(s[:-2]) # hello wor     # 截取 index 0 到 index -2(不含) 的字
print(s[-11]) # h             # 截取 index -11 的字
+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10|  positive index
+-------------------------------------------+
| h | e | l | l | o |   | w | o | r | l | d |
+---+---+---+---+---+---+---+---+---+---+---+
|-11|-10| -9| -8| -7| -6| -5| -4| -3| -2| -1|  negative index 
+---+---+---+---+---+---+---+---+---+---+---+

如果索引位置超出範圍,會發生IndexError: string index out of range錯誤。

s = "hello world"
print(s[11]) # Error: IndexError: string index out of range

Python的字串是不可變的(immutable),所以被分割的原始字串不會被修改,而是將分割的字串回傳。

s = "hello world"
sub = s[:4] 
print(sub)  # hell


沒有留言:

張貼留言