例如,某個字串包含多種不同的分隔符,如:
s = 'ab;cd|efg|hi,jkl|mn\topq;rst,uvw\txyz'
其中,
、;
、|
、\t
都是分隔符號。
要求:把該字串根據分隔符號拆分不同的字段。
解決方案:
連續使用字串的split()
方法,每次處理一種分隔符號;
使用正規表示式的re.split()
方法(推薦)。
t =
''t.split(sep, maxsplit)
返回乙個字串中單詞組成的列表,使用sep
作為分隔符字串。
sep
表示用來分割字串的分隔符,none(預設值)表示根據任何空格進行分割;maxsplit
表示最大分割次數,-1(預設值)表示沒有限制。
t =
t.extend(iterable)
extend()
方法用於在列表末尾一次性追加另乙個序列中的多個值(用新列表擴充套件原來的列表),可將多維列表轉換為一維列表。
`sum
()`用於求和,iterable, start)
sum()
用於求和,預設start=0
。對於乙個多維列表,可以將start=
,這樣可以得到乙個一維列表。
s =
'ab;cd|efg|hi,jkl|mn\topq;rst,uvw\txyz'
defmy_split
(s, seps)
: res =
[s]for sep in seps:
t =list
(map
(lambda ss: t.extend(ss.split(sep)
), res)
) res = t
return res
answer = my_split(s,
',;|\t'
)print
(answer)
['ab'
,'cd'
,'efg'
,'hi'
,'jkl'
,'mn'
,'opq'
,'rst'
,'uvw'
,'xyz'
]#結果
上面的方法可行,但使用reduce更為簡單。
from functools import
reduce
s ='ab;cd|efg|hi,jkl|mn\topq;rst,uvw\txyz'
defmy_split
(s, seps)
: res =
reduce
(lambda t, sep:
sum(
map(
lambda ss: ss.split(sep)
, t),[
]), seps,
[s])
return res
answer = my_split(s,
',;|\t'
)print
(answer)
['ab'
,'cd'
,'efg'
,'hi'
,'jkl'
,'mn'
,'opq'
,'rst'
,'uvw'
,'xyz'
]#結果
import re
s ='ab;cd|efg|hi,jkl|mn\topq;rst,uvw\txyz'
answer = re.split(
'[,;|\t]+'
, s)
print
(answer)
['ab'
,'cd'
,'efg'
,'hi'
,'jkl'
,'mn'
,'opq'
,'rst'
,'uvw'
,'xyz'
]#結果
可以看到,在處理多種分隔符時,方案2比方案1更為簡便。當然,對於單個分隔符的處理,建議使用split()
方法而不是re.split()
方法。 4 1拆分含有多種分隔符的字串
coding utf 8 實際案例 我們要某個字串一句分隔符號拆分不同的字段,該字串包含多種不同的分隔符,例如 s ab cd efg hi,jkl mn topq rst,uvw txyz 其中 t 都是分隔符號,如何處理?解決方案 方法一 連續使用str.split 方法,每次處理一種分隔符號....
如何拆分含有多種分隔符的字串?
需求 我們要把某個字串依據分隔符號拆分不同的字段,該字串包含多種不同的分隔符,例如 s ab cd efg hj,jkl mn tpq rst,uvw txyz 其中 t 都是分隔符號,如何處理?思路 1 連續使用str.split 方法,每次處理一種符號 2 使用正規表示式re.split 方法,...
Python 如何拆分含有多種分隔符的字串
案例 把某個字串依據分隔符拆分,該字元包含不同的多種分隔符,如下 s 12 7.osjd jshdjdknx 其中 是分隔符 有哪些解決方案?方法1 通過str.split 方法,每次處理乙個分隔符 usr bin python3 def go split s,symbol result s for...