Wpis z mikrobloga

Czy takie zadanie jest trudne? Python, ale może być dowolny język:

Napisz funkcję która zwraca True tylko i tylko wtedy gdy wszystkie elementy listy przekazanej jako argument są parzyste.


#naukaprogramowania #python
  • 57
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Sargon_Ankro: @ania777: chyba się nie rozumiemy. Jeśli list.size() zwraca wartość unsigned, a chcemy ją śledzić za pomocą zmiennej signed, to istnieją przypadki w których dostaniemy zły wynik w związku z przepełnieniem zmiennej użytej do iteracji.
  • Odpowiedz
@co_to_sie_stanelo: ja tu o czymś innym piszę. Już dla wielkości listy rzędu miliona pętla z l.size() wykonuje się za długo (rzędu godzin), a lekarstwem na to jest wpisanie wielkości do jakiejś zmiennej.

A użycie unsigned int (albo size_t) to zupełnie inna bajka, istotna przy jeszcze dłuższych listach. Tylko że do tego się nie odnoszę.
  • Odpowiedz
@co_to_sie_stanelo: no niby racja. ale to wszystko zalezy od rozmiaru listy. jezeli faktycznie przekazana miała by mnóstwo elementów to najlepiej odrazu iść w unsigned int czy nawet w size_t albo jeszcze większą, co nigdy nie będzie na minusie. Tyle że to jest po prostu dodatkowy niuans, który nie został przedstawiony w treści pytania, więc równie dobrze można założyć, że przekazana lista nie jest duża i obrót licznika wartości iterującej nie
  • Odpowiedz
@Kiro: zgodnie z dokumentacja all leci po wszystkich elementach petli, aż nie natrafi na element który nie jest prawdziwy. Twoja propozycja najpierw iteruje się przez wszystkie elementy [x %2 ==0 for x in l), a dopiero potem przechodzi za pomocą all przez wygenerowaną listę.
  • Odpowiedz
@LOLWTF: None jest efektem ubocznym braku zwracanej wartości :p To z przyzwyczajenia, w takich prostych zadaniach czepiają się o każdy szczegół :)
  • Odpowiedz