[閒聊] 把字串以固定長度分割
把字串以固定長度分割
'112233445566778899AA' => 以長度2分割
['11', '22', '33', '44', '55', '66', '77', '88', '99', 'AA']
我一開始只想到下面的方法
a='112233445566778899'
print ([a[i:i+2] for i in range(0, len(a), 2)])
後來在網路看到另一種方法,這方法我覺得很漂亮
還可以當iter用
def split(s, len):
while s:
yield s[:len]
s = s[len:]
print (list(split(a, 2)))
模仿上面,改用遞迴的方法,但比上面差多了,硬湊的
def split2(s, len):
if s:
return s[:len], *split2(s[len:], len)
return ()
def split2_1(s, len):
if s:
return [s[:len]] + split3(s[len:], len)
return []
print (split2(a, 2))
大約兩種方向,一種直接slice切出特定位置
另一個就每次取開頭,還有其它做法或簡潔寫法嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.136.108.49 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1599235124.A.22C.html
→
09/05 01:23,
4年前
, 1F
09/05 01:23, 1F
→
09/05 01:24,
4年前
, 2F
09/05 01:24, 2F
→
09/05 01:24,
4年前
, 3F
09/05 01:24, 3F
→
09/05 10:27,
4年前
, 4F
09/05 10:27, 4F
→
09/05 10:29,
4年前
, 5F
09/05 10:29, 5F
這兩個沒問題,可以看得懂,利用findall去產生list
也是屬於想都沒想過的方法
→
09/05 10:30,
4年前
, 6F
09/05 10:30, 6F
wrap是什麼函式?
※ 編輯: tsaiminghan (220.136.92.240 臺灣), 09/05/2020 22:17:54
→
09/06 09:15,
4年前
, 7F
09/06 09:15, 7F
→
09/06 09:46,
4年前
, 8F
09/06 09:46, 8F
討論串 (同標題文章)
Python 近期熱門文章
PTT數位生活區 即時熱門文章