Cześć wszystkim!
Na początku chciałbym zaznaczyć że jestem osobą początkującą w Pythonie. Przejdę od razu do rzeczy.
Mam 2 listy i słownik:
Frame = [1,2,3,4,5,5,5]
Paved = [2,2,2,3,7,7,7]
Słownik poniżej:
raw_data = {
'so': {
'frame_index': [],
'Number_of_SM': [],
'Number_of_B': [],
'road_info': {
'SL_info': {
's1': {
'paved': [],
},
's2': {},
's3': {},
's4': {}
},
'SM_info': {
'b1': {
'paved': []
},
'b2': {},
'b3': {},
'b4': {}
}
}
}
}
Chciałbym, aby skrypt wpisywał dane do słownika w zależności od liczby wystąpień danej cyfry w liście 'Index'.
Np: Na pozycji 0 w liście "Frame' mamy cyfrę '1' --> wpisujemy tą wartości w listę 'frame_index' ze słownka. Dla tej wartości mamy tożsamą wartość w liście 'paved' na tej samej pozycji co w liście 'Frame', czyli '2' --> wpisujemy tą wartość do listy SL_info>s1>paved. Pozostałe placeholdery czyli s2,s3 i s4 na tych samych pozycjach mają być uzupełnione 0. Tak samo dla b1,b2,b3.
Dla 2,3 robimy tak samo.
Dla 4 tożsamą wartością z listy 'paved' jest '3' która ma trafić do SM_info>b1>paved (ogólnie 2 i 7 mają trafiać do SL_info, a 3 do SM_info). A reszta s1,s2,s3,s4,b2,b3,b4 ma być uzupełniona 0.
Jeśli w liście 'Frame' jakaś wartość się powtarza to ma zostać ona wpisana do listy 'Frame_index' tylko raz. Tożsame dla nich wartości z listy 'paved' mają być wpisane do placeholderów - odpowiednio s1>paved, s2>paved, s3>paved, reszta czyli s4,b1,b2,b3 i b4 na tych pozycjach mają być wypełnione zerami.
Ogólnie chodzi mi o to żeby wszystkie wartości były mocno zależne od pozycji na liscie.
Ewentualnie jeśli ktoś byłby w stanie pokazać mi zależność do pobierania wartości z listy na danej pozycji i pomijane kolejnych takich samych wartości, ale "pobieraniu informacji" z drugiej listy o pozostałych wystąpieniach i wpisywaniu tego w odpowiednie miejsce w słowniku.
Z góry dziękuję za pomoc i przepraszam za niewyraźne wytłumaczenie mojego problemu :)
Pozdrawiam