Wpis z mikrobloga

  • 1
#python
Próbuje rozwiązać problem. Mam listę która składa się z innych list o tej samej konstrukcji. Mam na niej duble. Jak mogę usunąć powtórzenia?
  • 25
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@GinSchweppes: plusa dałem za list comprehension i za nicka (yebać Kinley'a ( )) bo jak już kolega zauważył elementy zbioru muszą być haszowalne, inaczej mógłbyś zmienić jakiś już po utworzeniu zbioru na taki jaki już w zbiorze jest.

@GinSchweppes no właśnie te metody nie chciały działać


@Dzordz: set() to nie metoda listy, tylko konstruktor obiektu typu zbiór, a czemu kolega zaproponował
  • Odpowiedz
@GinSchweppes: a wiesz co to jest element setu? xD powiedz mi ktore z nich jest mutable? ktore jest lista? 1,2,3,2,5
zdajesz sobie sprawe ze set(lista) przerabia liste na set, a nie tworzy set z lista jako element? xD
sprobuj w ten sposob:
set([[1,2], [3,4]]) - czyli to o co pytal op
a dostaniesz to oczym
  • Odpowiedz
@wiewior_s: pracuje z pythonem od lat, natomiast po tobie od razu widac, ze sie boisz niewiedzy, bo bronisz sie nawet przed podaniem nazwiska.
dodatkowo widac, ze jestes debilem; podalem przyklad uproszczony, ale skoro jestes zbyt glupi by podlug niego zrozumiec to masz na swoim przykladzie uzycie set():
lista = [[1,2], [3,4]]
[list(item) for item in set(tuple(item) for item in lista)]

[[1,2], [3,4]]
  • Odpowiedz
@wiewior_s: smieciaku-anonimku, zostawie twoje pytania retoryczne, bo zal odpowiadac; celem bylo rozwiazanie problemu w sposob prosty i to uczynilem; nie bylo celem stworzenie zbioru z lista, a ponadto skladnia pythona na to nie pozwala, wiec nie wiem z czym masz problem; wykaz, ze ten kod nie rozwiazuje problemu, a nie sie spinasz
  • Odpowiedz
@GinSchweppes: do mnie sie dosrales o set (ktory jest oczywistym rozwiazaniem, jesli elementy nie sa mutable, ale nie w tym przypadku), cytuje "@wiewior_s: p--------z" jak ci napisalem ze na set nie da sie wrzucic listy to zaczales jakies swoje debilne wywody. swoje rozwiazanie trzeba bylo wrzucic zamiast pierwszego idiotycznego posta z set, i nadal nie masz tam nawet przez moment listy jako element setu. nie chce mi sie dalej dyskutowac
  • Odpowiedz
@wiewior_s: @luzny_lori: gadacie od rzeczy zamiast pokazac, ze kod ktory napisalem (uzywajacy set())

[list(item) for item in set(tuple(item) for item in lista)]

nie dziala

weź sobie listę niehaszowalnych obiektów (np. listę list z kontrprzykładu kolegi @wiewior_s -> lista = [[1, 2], [3, 4]] )i pochwal się wynikami.

No przeciez to wlasnie zrobilem
  • Odpowiedz
@GinSchweppes: wiem dlaczego robisz rzutowanie na krotkę w trakcie list comprehension, więc masz kolejny kontrprzykład:

lista = [[1, 2], [1, 2]]
pamiętaj, że problem OPa, który miałaby twoja konstrukcja rozwiązywać, to eliminacja duplikatów z listy.

edit: a szlag, masz rację, p-------m stopień zagłębienia
  • Odpowiedz