2016-09-25 20 views
0

基本的には、リスト内のアイテムをグループ化したいと思います。たとえば:[1, 2, 3, 4, 5, 6]についてはPythonでリスト内包を持つネストされたリストを作成する

  1. は、私が[1, 2, 3, 4, 5, 6, 7]について[[1, 2, 3], [4, 5, 6]]
  2. をしたい、私は[[1, 2, 3], [4, 5, 6], [7]]

をしたい私は、ネストされたリストをネスト解除する方法を知っているが、私は、ネストされたリストを作成する方法は考えています。

答えて

2

あなたは3rangeおよび出力スライスして、リストの内包表記を使用することができます。

>>> l = [1, 2, 3, 4, 5, 6, 7] 
>>> [l[i:i+3] for i in range(0, len(l), 3)] 
[[1, 2, 3], [4, 5, 6], [7]] 

>>> l = [1, 2, 3, 4, 5, 6] 
>>> [l[i:i+3] for i in range(0, len(l), 3)] 
[[1, 2, 3], [4, 5, 6]] 

範囲は、第二の端部であり、ステップ第三で、最初のものは範囲の開始である3つの引数を取ります。 Python 2を使用している場合は、代わりにxrangeを使用してください。

1

私はあなたがこのような方法でそれを行うことができると思います。

target = [1, 2, 3, 4, 5, 6, 7] 
n = 3 
print([target[i:i+n] for i in range(0, len(target), n)]) 

Nを変更することにより、サブリストのサイズを変更することができます。しかし、上記のコードでは、私はターゲットを2回使用して、私は目標を一度使用する方法を見つけることを願っています。

関連する問題