[Python] 文字を指定した数で区切る

Pythonで文字列を指定した数毎に区切る方法です。 例えば、 123456 という文字列があったら 12, 34, 56 って感じに区切りたい。 ワンライナーでやるならこんな感じ ```bash `gutter:false; $ echo "123456" | fold -w2 | paste -sd ' ' - 12 34 56 ``` 調べてみたのですが、なんとPythonにはそういった関数は無いようでした。 自分で作成する必要があります。 ```python `gutter:false; #!/usr/bin/env python3 import sys def split_word(s, chunk): a = zip(*[s[i::chunk] for i in range(chunk)]) # 1 return [''.join(t) for t in a] # 2 for line in iter(sys.stdin.readline, ""): word = line.rstrip() print(split_word(word, 2)) ``` 1. zipと*(アスタリスク)を使う事で、"123456" -> "135", "246" のようになります。 2. 空白文字でjoinする事で指定文字で分割した文字リストにします。 日本語でググってもいいのが見つからなかったので、英語でググったのですがそれでも見つけるの苦労しました。 この方法をググったのは、本当は別の目的があったのですがそれはまたの機会に記事にします。 ## 参考 [Split string every nth character?](https://stackoverflow.com/questions/9475241/split-string-every-nth-character) これ探すの苦労しました。 英語でググるの難しいですね。

0 件のコメント :

コメントを投稿