• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wypisanie powtarzających się liczb z listy.

Object Storage Arubacloud
0 głosów
749 wizyt
pytanie zadane 20 listopada 2020 w Python przez Tanormalnie Użytkownik (550 p.)
Cześć, wie ktoś w jaki sposób mógłbym wypisać liczby które pojawiły się w tablicy więcej niż 2 razy?

3 odpowiedzi

+1 głos
odpowiedź 20 listopada 2020 przez tangarr Mędrzec (154,860 p.)
Najprostszą metodą jest posortowanie listy, a potem iterowanie po niej od początku do końca i zliczanie elementów. Na początku licznik jest ustawiony na zero a zapamiętany element na null. Jeżeli napotkasz taki sam element jak zapamiętany to zwiększasz licznik o jeden. Jeżeli licznik wynosi 3 to wypisujesz liczbę. Jeżeli element jest inny to nadpisujesz zapamiętany element i ustawiasz licznik na 1.
+1 głos
odpowiedź 16 października 2023 przez VBService Ekspert (254,630 p.)
edycja 16 października 2023 przez VBService

Możesz np. posłużyć się słownikiem (dictionary)

[ kod on-line ]

numbers = [ 1, 2, 3, 4, 4, 4, 5, 6, 7, 8, 8, 9, 9, 0, 2, 9, 9 ]

# Tworzymy pusty słownik (dictionary) do zliczania wystąpień każdej liczby.
count_dict = {}

# Liczymy wystąpienia każdej liczby w tablicy.
for number in numbers:
    if number in count_dict:
        count_dict[number] += 1
    else:
        count_dict[number] = 1

# Wypisujemy liczby, które wystąpiły więcej niż 2 razy.
for number, count in count_dict.items():
    if count > 2:
        print(f'Liczba {number} (powtórzeń: {count})')

 

no i też np. Counter jak już zasugerował @Episkopatto;

[ kod on-line ]

from collections import Counter

numbers = [ 1, 2, 3, 4, 4, 4, 5, 6, 7, 8, 8, 9, 9, 0, 2, 9, 9 ]

# Używamy funkcji Counter, aby zliczyć wystąpienia każdej liczby.
count = Counter(numbers)

# Wybieranie liczb, które występują więcej niż 2 razy.
result = [num for num, freq in count.items() if freq > 2]

print(result)

 

można także użyć np. metody count() dla list-y

[ kod on-line ]

numbers = [ 1, 2, 3, 4, 4, 4, 5, 6, 7, 8, 8, 9, 9, 0, 2, 9, 9 ]

# Tworzymy pustą listę na wynik.
result = []

# Iterujemy przez liczby w tablicy.
for num in numbers:
    # Sprawdzamy, czy liczba występuje więcej niż 2 razy.
    if numbers.count(num) > 2 and num not in result:
        result.append(num)

print(result)

 

0 głosów
odpowiedź 16 października 2023 przez Episkopatto Nowicjusz (140 p.)
edycja 16 października 2023 przez Episkopatto
liczby = [1,2,3,4,4,,5,6,7,8,8,9]


def wypisz_powtarzajace_sie(tablica):

    powtarzajace_sie = []

    wystapienia = {}

    for liczba in tablica:

        if liczba in wystapienia:

            if liczba not in powtarzajace_sie:

                powtarzajace_sie.append(liczba)

        else:

            wystapienia[liczba] = 1

    print("Liczby powtarzające się w tablicy to:", powtarzajace_sie) 

    

 

komentarz 16 października 2023 przez VBService Ekspert (254,630 p.)
edycja 16 października 2023 przez VBService

@Tanormalnie;

pojawiły się w tablicy więcej niż 2 razy

wink

 

from collections import Counter

gdzie w kodzie użyłeś Counter?

 

1
komentarz 16 października 2023 przez Episkopatto Nowicjusz (140 p.)
O masz racje, zostało po poprzednich próbach, dzieki za info :) mialem to jako zadanie w tutorailu i chyba z godzine sie meczylem jak to ugryzc internet polecal rozwiazania z counterem ale cos mi nie szlo  i pozmienialem pozniej :D
komentarz 16 października 2023 przez VBService Ekspert (254,630 p.)

Zdarza się, szczególnie jak za długo się ślęczy nad kodem. wink

Podobne pytania

0 głosów
1 odpowiedź 959 wizyt
pytanie zadane 10 sierpnia 2017 w Python przez dziadek Początkujący (440 p.)
0 głosów
2 odpowiedzi 4,383 wizyt
pytanie zadane 21 marca 2016 w Java przez Aisekai Nałogowiec (42,190 p.)
0 głosów
1 odpowiedź 194 wizyt
pytanie zadane 14 czerwca 2015 w Nasze projekty przez JogiMichu Nowicjusz (180 p.)

92,702 zapytań

141,615 odpowiedzi

320,180 komentarzy

62,060 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...