---
# System prepended metadata

title: 6-5 再談字串
tags: [chapter 6, Python]

---

###### 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']
```
