LoginSignup
0
1

More than 3 years have passed since last update.

リストを特定の長さごとに分割し余った要素も含めてサブリスト化する方法

Last updated at Posted at 2020-03-31

やりたいこと

["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さんからコメントを頂きました。
ありがとうございました。

 

0
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1