У меня есть список, и в этом списке много дублированных значений.Это формат списка:
https://imgur.com/a/tj2ZwxG
Итак, у меня есть несколько полей в следующем порядке: "User_ID" "Movie_ID" "Rating" "Time"
То, что я хочу сделать, это удалить из 5-го вхождения «User_ID», пока я не найду другой «User_ID».Например:
Давайте предположим, что у меня есть список только с «User_ID» (от 1 до 196), например:
1, 1, 1, 1, 1, 1, 2,2, 2, 2, 2, 2, 2 ...
В этом случае у меня есть шесть вхождений с номером 1 и семь вхождений с номером 2.
Итак, я удалю,с 1, после пятого вхождения, пока не найду первое «2».И то же самое для 2: я начну удалять после его пятого вхождения, пока не найду новый номер, который будет «3» и т. Д.
Итак, я получу новый список, какэто: 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, содержащее только 5 экземпляров каждого отдельного элемента.
Я знаю, что могу получить доступ ко всем полям "User_ID" следующим образом:list[index]["User_ID"]
есть ли функция, которая это делает?Или, если нет, может кто-нибудь помочь мне создать его?
Спасибо за помощь!
Я пытался сделать что-то вроде этого:
a = 0
b = 1
start = 0
position = 0
while(something that I don't know):
while(list[a]['User_ID'] == list[b]['User_ID']): #iterate through the list, and I only advance to the next elements if the previous and next elements are the same
a+=1
b+=1
position+=1
if(list[a]['User_ID'] != list[b]['User_ID']): #when I finally find a different element
del new_list[start:start+position] #I delete from the start position, which is five untill the position before the different element.
a+=1
b+=1
start+=5