Python split 字串分割用法與範例

本篇 ShengYu 介紹 Python split 字串分割的用法與範例,在字串處理中常常會需要將字串根據某個符號來切割,例如:空白,逗號,藉此區分出資料的欄位,常見於讀取文字檔或讀取 csv 的欄位切割處理,Python split 字串分割算是字串處理中最常用到的功能,

以下的 Python split 字串分割用法與範例將分為這幾部分,

  • Python split 字串切割使用範例
  • split() 指定 , 逗號為分隔符號
  • split() 指定了不存在的分隔符號會怎樣?
  • split() 指定要切割幾次

那我們開始吧!
以下範例是在 Python 3 環境下測試過。

Python split 字串切割使用範例

Python split 的用處在於把字串透過指定的分隔符號對字串進行分割,分割後的字串會儲存在一個串列 list,
split() 第一個參數為指定的分隔符號,可以是空白,換行(\n),tab(\t), 逗號(,) 或其他字元等等,
split() 不給入參數的話,預設會以空白作為分隔符號做切割,

以下示範空白為分隔符號:

python-split.py
1
2
3
4
5
6
7
8
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

str1 = '1 2 3'
print(str1)
str2 = str1.split(' ')
print(str2)
print(str1.split())

輸出結果如下:

1
2
3
1 2 3
['1', '2', '3']
['1', '2', '3']

split 回傳的串列可以透過 len() 來知道這個串列有幾個元素,

python-split2.py
1
2
3
4
5
6
7
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

str1 = '1 2 3'
str2 = str1.split(' ')
print(str2)
print(len(str2))

len() 計算出的結果如下,

1
2
['1', '2', '3']
3

split() 指定 , 逗號為分隔符號

以下介紹 Python split() 指定 , 逗號為分隔符號的範例,
程式碼如下:

python-split3.py
1
2
3
4
5
6
7
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

str1 = '4,5,6'
print(str1)
str2 = str1.split(',')
print(str2)

輸出結果如下:

1
2
4,5,6
['4', '5', '6']

Python split() 指定 , 為分隔符號的話,原字串如果有空白的話不會幫你去除空白,

python-split4.py
1
2
3
4
5
6
7
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

str1 = '4, 5, 6'
print(str1)
str2 = str1.split(',')
print(str2)

輸出:

1
2
4, 5, 6
['4', ' 5', ' 6']

從上面輸出看得出來切割的結果有包含空白,如果想要去除空白的話可使用 strip 來將這些多餘的空白去除。

split() 指定了不存在的分隔符號會怎樣?

Python 如果 split() 指定了不存在的分隔符號的話會回傳長度為 1 的 list,回傳的這個 list 第一個元素即為原本的字串。

python-split5.py
1
2
3
4
5
6
7
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

str1 = '7,8,9'
print(str1)
str2 = str1.split(' ')
print(str2)

輸出:

1
2
7,8,9
['7,8,9']

split() 指定要切割幾次

Python split() 可以指定要切割幾次,在第二個參數帶入切割次數即可,以下示範指定切割 2 次,

python-split5.py
1
2
3
4
5
6
7
8
9
10
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

str1 = 'hello world 1 2 3 4 5'
print(str1)
str2 = str1.split(' ', 2)
print(str2)
print(str2[0])
print(str2[1])
print(str2[2])

輸出:

1
2
3
4
5
hello world 1 2 3 4 5
['hello', 'world', '1 2 3 4 5']
hello
world
1 2 3 4 5

下一篇介紹 replace 取代字元或取代字串

其他參考
Python String split() Method
https://www.w3schools.com/python/ref_string_split.asp
Python String | split() - GeeksforGeeks
https://www.geeksforgeeks.org/python-string-split/

其它相關文章推薦
如果你想學習 Python 相關技術,可以參考看看下面的文章,
Python str 字串用法與範例
Python 新手入門教學懶人包
Python 連接字串 join
Python 去除空白與去除特殊字元 strip
Python 取代字元或取代字串 replace
Python 取出檔案名稱 basename
Python 取出目錄的路徑 dirname