Mam tablicę, a w niej numerki: np. (1,2,3,4,6,7,8,12,14).
Jak mogę podzielić tablicę na zbiory kolejnych liczb?
Dla powyższego przykładu wynik miałby [1,2,3,4], [6,7,8], [12],[14]
Kompletnie nie wiem jak się do tego zabrać Pomożecie?
viking
22.04.2019, 12:25:05
A według jakiego klucza ten podział? Dlaczego akurat te 4 zbiory?
miccom
22.04.2019, 12:36:56
Klucz wg. kolejności liczb, ale aby to były zbiory kolejnych po sobie liczb. Jeśli już np. po n-tej liczbie nie ma n-tej + 1 to tworzymy nową tablicę którą rozpoczyna następna liczba po n-tej i dalej sprawdzamy czy jest nta2+1
w moim przykładzie: tworzę tablicę, która zawiera liczby 1,2,3,4 nie ma w głównej tablicy liczby 5 więc zamykam pierwszą tablicę i szukam w zbiorze następnej liczby po 4 ( w moim przykładzie to liczba 6 ) i ta liczba otwiera drugą tablicę z numerami 6,7,8, liczby 9 już nie ma w głównej tablicy więc zamykam tablicę drugą, wyszukuję kolejną liczbę z tablicy ( w moim przykładzie to liczba 12 ) i tworzę tablicę trzecią, nie ma liczby 13 w tablicy głównej więc zamykam tablicę trzecią, i szukam następnej liczby, znajduję liczbę 14 więc otwieram tablicę czwartą, nie ma liczby 15 w głównej tablicy więc zamykam tablicę czwartą- kończą się liczby w tablicy głównej.
uff;)
emillo91
22.04.2019, 14:15:17
A to ma być skończony zbiór tablic czy pętla generująca tablice bez końca? Pytam bo da się to zrobić w pętli, ale żeby wiedzieć którą pętlę wybrać to musisz podać jakim celem jest rozdzielanie liczb na tablice. Jest taka funkcja nazywająca się array_chunk. Do tego dokładasz pętlę i dzielisz tablicę na fragmenty.
Pyton_000
23.04.2019, 04:49:06
Zwykła pętla foreach coś na zasadzie (pseudokod):
Kod
licznik = 0 tablica = [] foreach dane as klucz => wartosc: tablica[licznik][] = element if not isset dane[klucz+1] licznik+1
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.