#やりたいこと
["a", "b", ... ,"z"]
↑の様なリストがある時、aからe、fからjのように5文字ごとに分割したい。また、最後に余るzに関しても、リストに含めたい。
つまり、
["aからe", "fからj", ..., "z"]
のようなサブリストに分割したいと考えています。
#方法
文字列をすべてキューに入れ、5個ごとに取り出します。また、空でないキューのみを取り出すことで、最後に余った要素以降は無視します。
#コード
split.py
import queue
#aからzの文字リストを作成
chars = [chr(ord('a') + i) for i in range(26)]
#キューを作成
q = queue.Queue()
#キューに文字リストを挿入
for s in chars:
q.put(s)
#分割した文字を格納する用のリスト
subList = []
#文字リストを分割
while not q.empty():
#分割したリストを一時保存
splittedList = []
#5個ごとに区切る
for i in range(5):
if not q.empty():
splittedList.append(q.get())
#サブリストに格納
subList.append(splittedList)
#出力
print(subList)
#結果
>python split.py
[['a', 'b', 'c', 'd', 'e'], ['f', 'g', 'h', 'i', 'j'], ['k', 'l', 'm', 'n', 'o'], ['p', 'q', 'r', 's', 't'], ['u', 'v', 'w', 'x', 'y'], ['z']]
#追記(2020/03/31)
@shiracamusさんからコメントを頂きました。
ありがとうございました。