2017-10-05 6 views
0

これは私がPythonに新しいもので、これを達成することができません。値のリストのリストのキーを見つけよう

list1 = [['user1', 'id1'], ['user2', 'id2'], ['user3', 'id3']...] 
list2 = [['id1', 'group1'], ['id1', 'group2'], ['id2', 'group1'], ['id2', 'group4']...] 

そして、何私は必要なのこのような単一のリストです::

[['user1','id1','group1'],['user1','id1','group2'],['user2','id2','group1']] 

私はすべてのリストを反復処理し、値を比較できたと私は思うが

私はリストの二つのリストを持っていますリストのリストに値を保存し、そのようなものを返すことを可能にする組み込み関数がいくつかあります。しかし、私は多次元リストのための何も見つけることができません。

最初のリストのidN値は必ずしも2番目のリストに存在しないことに注意してください。

ありがとうございました!

+1

それは辞書代わりのリストを使用することは可能でしょうか? – farbiondriven

+0

1つのリストは休憩リクエストから、もう1つはLDAP検索から、それぞれのサブリストをメインのものに追加して作成します。私は代わりに代わりに辞書を作ることができると思うが、私は方法を知らない。 – Emepese

+0

リストには「キー」がありませんので、そのような組み込み関数はありません。キーと値のペアを関連付けるには、 'dict'を使うべきです。 –

答えて

2

Pythonにはこのようなことはありません。 numpyには多次元配列のメソッドがありますが、テキストにはあまり適していません。

辞書としてのあなたの2番目のリスト機能は、あなたがリストのリストを使用する必要がある場合、あなたはこれを達成するために理解を使用することができます1

dict2 = {key:value for key, value in list2} 

、その後

new_list = [[a, b, dict2[b]] for a, b in list1] 
0

を作ります。

list1 = [['user1', 'id1'], ['user2', 'id2']] 
list2 = [['id1', 'group1'], ['id1', 'group2'], ['id2', 'group1'], ['id2', 'group4']] 

listOut = [[x[0],x[1],y[1]] for x in list1 for y in list2 if x[1] == y[0]] 

output => [['user1', 'id1', 'group1'], ['user1', 'id1', 'group2'], ['user2', 'id2', 'group1'], ['user2', 'id2', 'group4']] 
0

あなたはこのコードを試すことができます。

list1 = [['user1', 'id1'], ['user2', 'id2'], ['user3', 'id3']] 
list2 = [['id1', 'group1'], ['id1', 'group2'], ['id2', 'group1'], ['id2', 'group4']] 

final_list=[] 
for sublist in list1: 
    for item in sublist: 
     for sublist1 in list2: 
      for item1 in sublist1: 
       if item==item1: 


        final_list.append(("".join(sublist[:1]),item1,"".join(sublist1[1:]))) 

print(final_list) 

出力:

[('user1', 'id1', 'group1'), ('user1', 'id1', 'group2'), ('user2', 'id2', 'group1'), ('user2', 'id2', 'group4')] 
関連する問題