2017-05-18 11 views
-1

リスト内に同じ項目をグループ化しようとしているタプルがあります。 例リスト内のタプルのグループ化

[('/Desktop/material_design_segment/arc_01.texture', 'freshnel_intensity_3.0022.jpg'), 
('/Desktop/material_design_segment/arc_01.texture', 'freshnel_intensity_4.0009.jpg'), 
('/Desktop/material_design_segment/arc_08.texture', 'freshnel_intensity_8.0020.jpg'), 
('/Desktop/material_design_segment/arc_05.texture', 'freshnel_intensity_5.0009.jpg'), 
('/Desktop/material_design_filters/custom/phase_03.texture', 'rounded_viscosity.0002.jpg'), 
('/Desktop/material_design_filters/custom/phase_03.texture', 'freshnel_intensity_9.0019.jpg')] 

私の結果は私を返す必要があります:

'/Desktop/material_design_segment/arc_01.texture': 
    'freshnel_intensity_3.0022.jpg', 
    'freshnel_intensity_4.0009.jpg', 
'/Desktop/material_design_segment/arc_08.texture': 
    'freshnel_intensity_8.0020.jpg' 
'/Desktop/material_design_segment/arc_05.texture': 
    'freshnel_intensity_5.0009.jpg' 
'/Desktop/material_design_filters/custom/phase_03.texture': 
    'rounded_viscosity.0002.jpg', 
    'freshnel_intensity_9.0019.jpg' 

次のように私は私のコードを使用しようとしたときしかし、それだけで私に1つのアイテムを返します。

groups = defaultdict(str) 
for date, value in aaa: 
    groups[date] = value 

pprint(groups) 

これは出力に含まです:

私はそれが間違ってやっている
{'/Desktop/material_design_segment/arc_01.texture': 'freshnel_intensity_4.0009.jpg' 
'/Desktop/material_design_filters/custom/phase_03.texture': 'freshnel_intensity_9.0019.jpg' 
'/Desktop/material_design_segment/arc_08.texture': 'freshnel_intensity_8.0020.jpg' 
'/Desktop/material_design_segment/arc_05.texture': 'freshnel_intensity_5.0009.jpg'} 

+0

あなたの予想結果は実際のPythonのではないです。おそらく 'defaultdict(list)'を試してください。* replace *ではなく* add *を試してみてください。 – jonrsharpe

答えて

1

valuegroups[date]に割り当てると、以前の値が上書きされます。それをリストに追加する必要があります。

 
groups = defaultdict(list) 
for date, value in aaa: 
    groups[date].append(value) 
0

次のようにあなたが(あなたのコードに基づいて)リストに値を追加する必要があります

groups = defaultdict(list) 
for date, value in aaa: 
    groups[date].append(value) 

print(groups) 
関連する問題