可能性のある複製:
リストをPythonで配列に変換するにはどうすればよいですか?
次のようなリストをどのように変換できますか?
data_list = [0,1,2,3,4,5,6,7,8]
次のようなリストのリストに:
new_list = [ [0,1,2] , [3,4,5] , [6,7,8] ]
つまり、リスト内の順序付けられた要素をグループ化して、順序付けられたリストに保持したいと考えています。これどうやってするの?
ありがとう
これは、data_listの長さが3の倍数であることを前提としています。
i=0
new_list=[]
while i<len(data_list):
new_list.append(data_list[i:i+3])
i+=3
これにより、3つの要素が出現順にグループ化されます。
new_list = [data_list[i:i+3] for i in range(0, len(data_list), 3)]
希望しない場合は、より良い例を挙げてください。
何かのようなもの:
map (lambda x: data_list[3*x:(x+1)*3], range (3))
new_list = [data_list[x:x+3] for x in range(0, len(data_list) - 2, 3)]
勝利のための理解度をリストアップ:)
Fred Fooからの回答 に基づいて、すでにnumpy
を使用している場合は、 reshape
を使用して、データのコピー:
import numpy
new_list = numpy.array(data_list).reshape(-1, 3)
元のリストから何らかの選択基準がありますか?
Pythonではこれを行うことができます:
new_list = []
new_list.append(data_list[:3])
new_list.append(data_list[3:6])
new_list.append(data_list[6:])
print new_list
# Output: [ [0,1,2] , [3,4,5] , [6,7,8] ]