znajdowanie liczby która nie powtarza się w zbiorze Python

0

Tak działa filter. Bierze anonimową funkcję lambda (lub inną przez nas podstawioną), i podstawia elementy z drugiego obiektu, przechowując wynik.
Polecam spojrzeć w link gdzie to jest fajnie zobrazowane:

http://pythontutor.com/live.html#code=import%20collections%0Adef%20solution%28A%29%3A%0A%20%20%20%20d%20%3D%20collections.Counter%28A%29%20%20%20%20%0A%20%20%20%20d%20%3D%20filter%28lambda%20x%3A%20x%5B1%5D%20%26%201,%20d.items%28%29%29%0A%20%20%20%20d%20%3D%20list%28d%29%20%20%20%20%0A%20%20%20%20return%20d%5B0%5D%5B0%5D%0A%20%20%20%20%0Asolution%28%5B1,1,2,3,3,4,2,5,4%5D%29&cumulative=false&curInstr=24&heapPrimitives=false&mode=display&origin=opt-live.js&py=3&rawInputLstJSON=%5B%5D&textReferences=false

(skrócony: https://goo.gl/6LyXJF )
@Edit:

Filter został w pythonie 3 wywalony z podstawki, z powodu clear code, bo można go zastąpić bardzo łatwo pętlą for + zip'em gdy ma dużą ilość zmiennych ;p.
Przykładowa konwersja:

temp = list[0]
for a in list[1:]:
    temp = temp+a
#A z reducem:
reduce(lambda x: x+y, list)

Które jest bardziej pythonowe i właściwe? Różnie ludzie polemizują, wg. mnie nie bez powodu został wywalony w pythonie 3. Ale wielu fanboy'om jednolinijkowców nie przemówisz że filter jest zły, bo pozwala robić cuda :D
Mój błąd, ślepy jestem. Chodziło mi o reduce.

0

spojrzałem i nadal nie rozumiem o co chodzi z x[1] and 1 (wiem czym jest lambda)
np. dla tupli (5,3) piątka jest 3 razy w liście.
dlaczego to wyrażenie zwraca True?
bo przecież:
x[1] = 3
3 and 1 = ??? True?

edit: dziena za stronkę chyba będę często korzystał

1
wohnioh napisał(a):

spojrzałem i nadal nie rozumiem o co chodzi z x[1] and 1 (wiem czym jest lambda)
np. dla tupli (5,3) piątka jest 3 razy w liście.
dlaczego to wyrażenie zwraca True?
bo przecież:
x[1] = 3
3 and 1 = ??? True?

edit: dziena za stronkę chyba będę często korzystał

https://en.wikipedia.org/wiki/Bitwise_operation#AND

0

dzieki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1