###### tags: `chapter 6` `Python`
# 6-5 再談字串 #
前面的小節講到很多關於串列的操作,但其實串列的操作放在字串裡也一樣可行,我們曾說過字串就相當於很多個字元組合在一起,因此概念上來說和串列也有幾分神似,這裡將介紹幾個字串常用的操作。
## 字串切片 ##
串列的`slice`一樣可以套用在字串上,其`slice`的依據是將一個字元對應到一個`index`,所以若字串長度為`n`,`slice`時的可操作index為`0` ~ `n-1`
```python=
data = "Hello,World"
print(data[0:5])
print(data[-3:-1])
# Hello
# rl
```
## 字串轉成串列 ##
前面提到這兩者有幾分神似,如果你想將字串轉換為一個串列,你只需要用到`list()`就可以完成了,這個函式會將字串裡的每一個字元轉換為串列的一個元素。
```python=
world = "Hello,World"
data = list(world)
print(world)
print(data)
# Hello,World
# ['H', 'e', 'l', 'l', 'o', ',', 'W', 'o', 'r', 'l', 'd']
```
## 切片賦值 ##
原本的字串是無法用index的概念去賦值的,但轉換為串列之後,就可以運用`[:]`的概念去賦值囉!
```python=
data = list("Hello,world")
data[5:] = ':)'
print(data)
# ['H', 'e', 'l', 'l', 'o', ':', ')']
```
## 字串分割 ##
`split()`函式可以幫助我們將字串用` `來分開,並且將切完後的結果轉換為串列的型式,這樣做的原因是讓我們在字數統計時能更方便。
可以用字串變數讀入一整篇文章後用`split()`將她們分割,最後再使用`len()`去計算文章的總字數。
```python=
random_num = "1 10 9 5000 3 288 499"
split_num = random_num.split()
print(len(split_num))
# ['1', '10', '9', '5000', '3', '288', '499']
```
如果想要根據其他特定的字元來切割字串,可以將該字元放入`()`內哦!
```python=
random_num = "1_10_9_5000_3_88"
split_num = random_num.split("_")
print(len(split_num))
# ['1', '10', '9', '5000', '3', '88']
```