Aktywne Wpisy
![stormi](https://wykop.pl/cdn/c0834752/568720e45767590d30436e0f9542a108ef1b8c1764ade0722e67fa2d10e8fef4,q60.jpg)
stormi +51
ocencie moja dupe, kazda ocena ponizej 10 dostaje bana
![stormi - ocencie moja dupe, kazda ocena ponizej 10 dostaje bana](https://wykop.pl/cdn/c3201142/966377f514c1f5d5c0596f540bd6666d2d0af64449634c24cd97ad5d061f52f7,w150.jpg)
źródło: Zdjęcie z biblioteki
Pobierz
dzikiwonsz21 +3
Szukam samochodu tak do 10tys zł (to tylko na samochód, na pierwsze naprawy jakieś 2-3tys), moje wymagania to:
- tempomat
- podgrzewane siedzenia
- skórzana jasna tapicerka
- trwały mało awaryjny silnik, ale też żeby miał trochę mocy, a nie 15sekund do setki
- automatyczna klimatyzacja
Słucham państwa, co polecacie?
Z tego co zdążyłem przejrzeć rynek, to w oko wpadło mi kilka modeli:
- skoda superb 1
- rover 75
- jaguar
- tempomat
- podgrzewane siedzenia
- skórzana jasna tapicerka
- trwały mało awaryjny silnik, ale też żeby miał trochę mocy, a nie 15sekund do setki
- automatyczna klimatyzacja
Słucham państwa, co polecacie?
Z tego co zdążyłem przejrzeć rynek, to w oko wpadło mi kilka modeli:
- skoda superb 1
- rover 75
- jaguar
Próbuję napisać kod, który będzie mi łączył obiekty w grupy po pierwszych wspólnych znakach (prefix) i wewnątrz grup sortował po dalszej części.
Przykład:
In: [a3, b2, d3, a2, b1, d1, a4]
Out: [ [a2, a3, a4], [b1, b2], [d1. d3] ]
Ilość znaków jaki ma prefix wiadoma. Ilość obiektów w każdej grupie: niewiadoma. Nie wszystkie grupy muszą być (w przykładzie nie ma grupy 'c') oraz obiekty tez nie wszystkie (brak chocby 'a1' w grupie 'a').
#programowanie #python - bo w tym muszę napisać rozwiazanie
Dla programistów za 15k zasugerowanie algorytmu to nie powinien być problem, ja nawet programistą nie jestem ;)
@miszczu_blady: Wygląda obiecująco, zerknę jak wrócę do mieszkania :)
@venomik: to spoko :)
a więc, (jak zasugerował miszczu), przyda Ci się default dict.
1. tworzysz słownik:
result = defaultdict(list)
2. iterujesz po surowej liście
3. apendujesz listę w defultdikcie, gdzie kluczem jest prefix
4. ostatecznie możesz przerobić ten słownik na listę list
In [1]: l = ['a3', 'b2', 'd3', 'a2', 'b1', 'd1', 'a4']
@venomik: @LOLWTF: można też w jednej linii
In [2]: [[s for s in l if s.startswith(prefix)] for prefix in {s[:1] for s in l}]
Out[3]: [['b2', 'b1'], ['a3', 'a2', 'a4'], ['d3', 'd1']]
1. pierwszy raz, aby otrzymać seta z prefiksami
2. drugi raz iterujesz seta z prefiksami
3. dla każdego prefiksa iterujesz całą listę
Dla tego przykładu zamiast jednej iteracji masz 5.
Jest też mało czytelne. Zysk z takiego jednolinijkowca żaden, tylko problemy.
W Scali
List("a3", "b2", "d3", "a2", "b1", "d1","a4").groupBy(_.head)
A to jest tylko ciekawostka.
@legolass @LOLWTF