2017-11-07 4 views
0

私は現在、3つのネストされたfor-loopsを使って以下のようなリストのリストを作成する関数を持っています。柔軟な入力を持つリストのリストを作成する(Python)

[[1,1,1] , [1,1,2] , .... , [3,3,3]] 

しかし、問題は誰かがより多くの数字を持っている

[[1,1,1,1,1,1,1] , ..... , [9,9,9,9,9,9,9]] 

のようなものにするために、リストのリストを望んでいる場合、私は、この機能を使用することはできませんです(1から - 9)と複数の要素(4の代わりに7の1の7)。ここで

は私の現在のコードです:

def listofList(): 
    temp = [] 
    for i in range(1,4): 
     for j in range(1,4): 
      for k in range(1,4): 
       temp.append([i,j,k]) 
    return temp 

誰かがよりよい解決策を私に提供することはできますか?私の関数listofList()は、リストのリストのサイズとリスト内の要素の両方の入力を受け取ることができるように柔軟にしたい。

+2

あなたは答えを受け取った場合は、あなたの質問を削除しないでください。代わりに、回答者に投票し、回答を受け入れてください。この動作を続けると禁止されます。 –

答えて

2

は、以下のことを試してみてください。

def listofList(subLen, totalLen): 
    final = [[item for i in range(subLen)] for item in range(1, totalLen+1)] 
    return final 

>>> listofList(9, 9) 
[[1, 1, 1, 1, 1, 1, 1, 1, 1], [2, 2, 2, 2, 2, 2, 2, 2, 2], [3, 3, 3, 3, 3, 3, 3, 3, 3], [4, 4, 4, 4, 4, 4, 4, 4, 4], [5, 5, 5, 5, 5, 5, 5, 5, 5], [6, 6, 6, 6, 6, 6, 6, 6, 6], [7, 7, 7, 7, 7, 7, 7, 7, 7], [8, 8, 8, 8, 8, 8, 8, 8, 8], [9, 9, 9, 9, 9, 9, 9, 9, 9]] 
>>> listofList(9, 2) 
[[1, 1, 1, 1, 1, 1, 1, 1, 1], [2, 2, 2, 2, 2, 2, 2, 2, 2]] 
>>> listofList(2, 9) 
[[1, 1], [2, 2], [3, 3], [4, 4], [5, 5], [6, 6], [7, 7], [8, 8], [9, 9]] 
>>> 
関連する問題