2017-10-29 8 views
0

リストのリストがあります。辞書リストの値を参照して返す方法

各リストの中には、数千の辞書リストがあります。 1つのリストに複数の辞書や1つの辞書が含まれている場合や、空の場合があります。

list_of_lists = [[], [{'text': 'analytics', 'indices': [18, 28]}, {'text': 'datascience', 'indices': [35, 47]}, {'text': 'restaurants', 'indices': [54, 66]}, {'text': 'machinelearning', 'indices': [92, 108]}, {'text': 'bigData', 'indices': [109, 117]}, {'text': 'CRM', 'indices': [118, 122]}], [{'text': 'python', 'indices': [49, 56]}, {'text': 'datascience', 'indices': [57, 69]}] 

だからこのリストの中に1つの空のリスト、6つの辞書と1つのリスト、および2つの辞書とつのリストがあります:

はここで、リスト内の三つの例の行の要約リストです。

'text': 'SOME_STRING'を含むkey:valueのペアから値を抽出する必要があります。

また、各値は、元の入力リストと同じインデックスのリストで返される必要があります。言い換えれば、たとえば、6つのkey:valueのペアの2番目のリストの場合、6つの値はすべて、元のlist_of_listsの同じインデックスのリストに返されます。

上記の例:

list_of_values = [[], ['analytics', 'datascience', 'restaurants', 'machinelearning', 'bigData', 'CRM', 'python'], ['python', 'datascience']] 

私はほとんど以下のコードを書いています。これらの文字列のすべてのリストを返しますが、同じインデックスでそれらを返しません。また、必要のないインデックス辞書も返します。

new_list_of_value_lists = [] 
for line in list_of_lists: 
    for dictionary in line: 
     for key, value in dictionary.items(): 
      new_list_of_value_lists.append(value) 

答えて

1

dictsの各ネストされたリストに対して別のリストを作成し、親リストに追加します。それをしなかった

list_of_values = [] 
for lst in list_of_lists: 
    list_of_values.append([dct['text'] for dct in lst]) 

print(list_of_values) 
# [[], ['analytics', 'datascience', 'restaurants', 'machinelearning', 'bigData', 'CRM'], ['python', 'datascience']] 
+0

:結果のリストが空のままですので、他の人がリスト内包に収集された値を持つ一方、空のリストには、ゼロの反復を取得します。ありがとう! – TJE