Jestem początkującym pytonem, więc może moje pytanie brzmi bardzo noob. Załóżmy, że mam listę słów, i chcę znaleźć liczbę razy, kiedy każde słowo pojawia się na tej liście. oczywistym sposobem na to jest:licznik częstotliwości przedmiotu w pytonie
words = "apple banana apple strawberry banana lemon"
uniques = set(words.split())
freqs = [(item, words.split.count(item)) for item in uniques]
print(freqs)
Ale znajdę ten kod nie jest bardzo dobra, ponieważ w ten sposób program działa poprzez słowa listy dwa razy, raz do budowy zestawu, a drugi raz, licząc liczbę występów. Oczywiście, mógłbym napisać funkcję, aby uruchomić listę i zrobić liczenie, ale to nie byłoby tak pythonic. Czy istnieje bardziej wydajny i pytonowy sposób? (. Pętli listę zwiększając właściwego dict klucz)
Nie dwa razy, wygląda na złożoność O (N * N). – Drakosha
@ Drakosha: Zgadzam się, po prostu to widziałem. –
Tak, złożoność to O (n^2), ale sama lista jest uruchamiana dwukrotnie. – Daniyar