W jestem w martwym punkcie mojego programu. Chciałem przeanalizować dodawane utwory na czacie discordowym. Już udało mi się to osiągnąć, ale aby nie osiąść na laurach postanowiłem się oddać podstawowemu przeanalizowaniu danych. Chciałem zacząć od zliczenia ile razy leciał dany utwór.
Funkcja dostaje dane w postaci tupla wielokrotnie zagnieżdżonego, każdy element 'głównego tupla' zawiera jedno odtworzenie konkretnego utworu (tytuł wraz z datą i godziną, kiedy do tego doszło).
#budowa tupla
(
(utwór1, ( data_dodania, (godzina, AM / PM )))
(utwór2, ( data_dodania, (godzina, AM / PM )))
(etc.)
)
Czyli właściwie, jakbym chciał podliczyć ile razy utwór wystąpił to mógłbym stworzyć nową listę do której powrzucam same tytuły utworów i potem łatwo to wyliczyć. Ale wydaje mi się że to będzie dość na skróty, zamiast uzyskać pomoc w dręczącym mnie problemie.
Chciałbym zrobić coś w stylu:
#data = powyższy tuple
tracks_stats= [ ]
for i in data:
if not i in tracks_stats:
tracks_stats.append ( [ i, data.count ( i ) ] )
Pomysł prosty jak budowa cepa, ale przecież element 'i' w 'data' nie jest samą nazwą tylko zagnieżdżonym tuplem. Chciałbym aby zamiast całego tupla patrzeć tylko na pierwszą część jego elementów.
Tak samo chciałbym aby podczas sprawdzania czy elementu nie ma w liście 'tracks_stats' patrzeć tylko na pierwsze elementy tejże listy.
Jest to w ogóle możliwe? Przeczucie mówi mi że lambda, którą stosuje się często przy sortowaniu list zagnieżdżonych tutaj może pomóc, ale nie mam pojęcia jak (prawdopodobnie wynika to z niedostatecznego zrozumienia również tego zagadnienia).
Przepraszam za być może niezrozumiałe opisanie problemu, ale jestem samoukiem i moja wiedza jesz kompletnie niekompletna.
Z góry dziękuję za udzieloną pomoc, pomimo przeszkody jaką była długość tego posta.