2017-12-22 18 views
-2

Pythonにはかなり新しく、タイトルが混乱しない限り、私はいくつかの助けに感謝します。これを私が達成しようとしているものの例を使って説明することができます。リスト内のリストにリストを追加して、リスト内のリスト内にリストを作成するにはどうすればよいですか?

Number = [25, 30, 36] 
Ratings = [ [101, 201, 301], [102, 202, 302], [103, 203, 304,] ] 

what_i_want = [ [ [101, 25],[201,30],[301,36] ], [ [102,25],[202,25],[302,36] ], [ [103,25],[203,30],[303,36] ] ] 

私は完全にこれを行う方法に困惑、私はforループのネストされた使用してみましたが、リストはこのように見える終わる:

list = [ ([101, 201, 301], 25), ([102, 202, 302], 30), ([103, 203, 304,], 36) ] 

また、私はするつもりですリストのサイズが非常に大きいので、効率とスピードを向上させる方法も非常に役立ちます。

答えて

4

あなたはリスト内包でzipを使用することができます。

Number = [25, 30, 36] 
Ratings = [ [101, 201, 301], [102, 202, 302], [103, 203, 304,] ] 
new_data = [[[a, b] for a, b in zip(i, Number)] for i in Ratings] 

出力:のようなループのネストされたあなたが使用することができます

[[[101, 25], [201, 30], [301, 36]], [[102, 25], [202, 30], [302, 36]], [[103, 25], [203, 30], [304, 36]]] 
0

を。

Number = [25, 30, 36] 
Ratings = [ [101, 201, 301], [102, 202, 302], [103, 203, 304,] ] 

list = [] 
for i in xrange(len(Ratings)):  #Iterate through outer list. 
    list.append([])     #Add new middle list to list. 
    for j in xrange(len(Ratings[i])): #Iterate through inner list. 
     list[i].append([Ratings[i][j],Number[j]]) 

出力:

list = [[[101, 25], [201, 30], [301, 36]], [[102, 25], [202, 30], [302, 36]], [[103, 25], [203, 30], [304, 36]]] 
0

あなたが任意のモジュールをインポートするか、それがより複雑にすることなく1行で行うことができます。

Number = [25, 30, 36] 
Ratings = [ [101, 201, 301], [102, 202, 302], [103, 203, 304,] ] 

print(list(map(lambda x:list(map(lambda y,y1:[y,y1],x,Number)),Ratings))) 

出力:

がちょうどラムダを使用

[[[101, 25], [201, 30], [301, 36]], [[102, 25], [202, 30], [302, 36]], [[103, 25], [203, 30], [304, 36]]] 
関連する問題