2013-12-19 2 views
0

У меня есть список Song объектов, выпущенных за последнюю неделю в week_songs. У него могут быть несколько повторяющихся песен, но у каждой песни есть связанный с ней song_id.Сравнение атрибутов объекта Django со списком объектов

Я пытаюсь получить список уникальных песен, выпущенных на прошлой неделе.

Это то, что я делаю

week_song_list = [] 
for song in week_songs: 
    if song.song_id not in week_song_list: 
     week_song_list.append(song) 

Но это, кажется, добавляя все песни, даже с тем же song_id. Я знаю, что это должно быть базовое решение. Что я делаю не так?

+0

Как примечание стороны: ваш тест неправильный - вы хотите «если песня не в week_songs». «Song.song_id» никогда не сравнится с экземпляром 'song'. –

+0

Да, я понял. Я должен был сравнить с списком песен, а не с объектами песни. –

ответ

0

Как кто-то указал (он удалил ответ), я не вел запись увиденных идентификаторов.

Это то, что я искал.

week_song_list = [] 
seen_ids = [] 
for song in week_songs: 
    if song.song_id not in seen_ids: 
     week_song_list.append(song) 
     seen_ids.append(song.song_id) 
Смежные вопросы