Jak policzyć część wspólną dwóch kolekcji liczb?

Jak policzyć część wspólną dwóch kolekcji liczb?
D8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 195
0

Jakiebłędy są w poniższym kodzie? Dlaczego on nie działa?

Kopiuj

def czesc_wspolna(lista_a, lista_b):
  lista_a = []
  n = int(input())
  for i in range(n):
    lista_a.append(input())
  print(lista_a)
  lista_b = []
  n = int(input())
  for i in range(n):
    lista_b.append(input())
  print(lista_b)
  czesc_wspolna = lista_a.intersect(lista_b)
  wynik = print(czesc_wspolna) 

not Michal
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Zug, Szwajcaria
  • Postów: 67
1
  1. Czy ty nadpisujesz argumenty funkcji?
  2. z tego co pamiętam to metoda to intersection i jest ona na set a nie list
lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5025
1

Stosujesz na liście metodę, której nie ma, stąd stacktrace. A w ogóle, wiesz co to funkcja w programowaniu, co ma robić, i co chciałeś osiągnąc tym kodem?

ledi12
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0

Nie wiem co tam cudujesz, ale intersection to metoda set.

AK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3561
0
lion137 napisał(a):

, i co chciałeś osiągnąc tym kodem?

Pewnie zaliczenie

darek88 napisał(a):

Jakiebłędy są w poniższym kodzie? Dlaczego on nie działa?

Po 12 latach to chyba już wypada podawać treści wyjątków i błędów

YA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2384
0
  1. Nigdzie nie wywołujesz tej funkcji, więc "nie działa".
  2. Mieszasz w niej różne rzeczy (wczytywanie danych z logiką obliczającą część wspólną, przesłaniasz parametry wejściowe ("variable shadowing"), wyświetlasz dane, no i nie zwracasz wyniku)
  3. Część wspólną liczysz intersectem, ale to nie jest funkcja dla list ( doczytaj o set)
  4. Nie zwracasz rezultatu przecięcia dwóch zbiorów (tj. brak return jakisRezultat, w efekcie funkcja zwraca "None")

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.