Ich habe eine große CSV-Datei, die ich versuche, in kleinere Unterlisten zu machen.Warum funktioniert dieser Code nicht? Ich sollte Werte trennen?
Das einzige Problem ist, dass es nicht tut, was es sein sollte ... oder zumindest Daten trennt richtig mit nur ein paar Sachen richtig getrennt sein
Mein Problem: Ich habe eine CSV-Datei, die Daten hat das geht zwischen 90 und 3 Meter tief, und die Daten werden so hin und her gehen. Ich benutze den neuesten Python.
Immer wenn die Zahl wieder ansteigt, möchte ich sie trennen.
ex. (Tiefe) 88, 77, 50, 20, 5, 90, 76, 54, 34, 15, 8, 4, 81, 74, 62, 51, 49, 30, 22, 10, 8 ... und so weiter . Es geht weiter zwischen 90 bis 3 und so weiter.
Was ich tun möchte, ist die Daten jedes Mal zu trennen, wenn es zwischen 90 und 3 geht. Sobald es getrennt ist, möchte ich die letzten und ersten Werte in dieser Liste nehmen. Wie so ex. 88, 77, 50, 20, 5 (hier getrennt), 90, 76, 54, 34, 15, 8, 4 (hier getrennt) 81, 74, 62, 51, 49, 30, 22, 10, 8 hier getrennt)... und so weiter.
Hier ist mein Code:
{ '1':
#two sets of data that you test with. m = ['9.90203', '9.79947', '9.66876', '9.54503', '9.42167', '9.2977', '9.17321', '9.05162', '8.11487', '8.038', '7.96111', '7.85746', '7.72701', '7.59709', '7.46781', '7.34127', '7.21842', '7.09548', '6.96798', '6.57355', '6.444', '6.32245', '6.23818', '6.15369', '6.04973', '4.63443', '4.49823', '4.36232', '4.21442', '4.0642', '26.5645', '26.4945', '26.4232', '26.3592', '26.2948', '23.418', '23.3667', '23.2756', '23.1856', '22.1849', '22.0822', '22.0191', '21.9671', '21.9154', '21.8641', '20.436', '20.3865', '20.3364', '20.2083', '20.0915', '19.9758', '19.8601', '19.7446', '19.6317', '18.1383', '17.9834', '17.8271', '17.7529', '17.6949', '17.6317', '17.5675', '17.4362', '16.581', '16.4745', '16.378', '16.2562', '16.1471', '16.0222', '15.89', '14.9752', '14.8725', '14.7666', '14.6234', '14.469', '14.3148', '13.7696', '13.6465', '13.5363', '13.4712', '13.4069', '13.3421', '13.2732', '13.1375', '13.0014', '12.4809', '12.3585', '12.2339', '12.121', '12.0116', '11.901', '11.7906', '11.6645', '11.5278', '11.3931', '11.2551', '11.1211', '10.993', '10.8501', '10.7205', '10.6026', '10.4992', '10.3952'] l = ['8.18142', '8.11846', '8.05988', '59.4627', '59.3455', '59.2296', '58.4541', '58.3302', '58.2265', '58.1239', '58.0314', '57.9405', '57.8496', '57.7514', '57.6746', '57.6098', '57.5414', '57.4722', '57.3517', '57.2151', '57.0934', '56.9704', '56.8361', '56.6993', '56.564', '56.4287', '56.3106', '56.2', '56.0877', '55.9782', '55.8869', '55.8223', '55.7578', '55.6933', '55.605', '55.4949', '55.3858', '55.2761', '55.1612', '55.0097', '54.8786', '54.7385', '54.6315', '54.5282', '54.4292', '54.327', '54.2217', '54.1127', '54.0037', '53.8938', '53.7695', '53.6271', '53.4857', '53.3437', '53.2254', '53.1712', '53.12', '53.0679', '53.0102', '52.9126', '52.8148', '52.7182', '52.6207', '52.491', '52.3561', '52.2267', '52.0908', '51.9405', '51.7786', '51.6421', '51.5043', '51.4063', '51.3087', '51.2117', '51.1141', '51.0304', '50.9446', '50.8577', '50.7744', '50.6716', '50.5655', '50.4625', '50.3598', '50.2569', '50.153', '50.0494', '49.9461', '49.8308', '49.7058', '49.582', '49.4583', '49.3473', '49.251', '49.1533', '49.0561', '48.953', '48.83', '48.7064', '48.5812', '48.4635', '48.3852', '48.2998', '48.2219', '48.1428', '48.0327', '47.9221', '47.8114', '47.7007', '47.5964', '47.4905', '47.3875', '47.2847', '47.1595', '47.0424', '46.9264'] group =0 temp = [] splited_list = {} lengh = len(l) for i in range(lengh): if not i == lengh-1: if l[i] > l[i+1]: temp.append(l[i]) else: temp.append(l[i]) group +=1 splited_list.update({str(group):temp}) temp = [] else: if l[i] < l[-2]: temp.append(l[i]) group +=1 splited_list.update({str(group):temp}) break else: group +=1 splited_list.update({str(group):[l[i]]}) break print (splited_list)
hier meine Ausgabe ist [ '8,18142', '8,11846', '8,05988', '59 0,4627' , ' 59.3455 ', '59 .2296', '58 .4541 ', '58 .3302', '58 .2265 ', '58 .1239', '58 .0314 ', '57.9405', '57.8496 ', '57.7514', '57.6746 ', '57.6098', '57.5414 ' , '57 .4722 ', '57 .3517', '57 .2151 ', '57 .0934', '56.9704 ', '56.8361', '56 .6993 ', '56 .564', '56 .4287 ', '56 .3106', '56 .2 ', '56 .0877', ' 55,9782 ', '55, 8869', '55, 8223 ', '55, 7578', '55, 6933 ', '55, 605', '55, 4949 ', '55, 3858', '55, .2761 ', '55, 1612', '55, 0097 ', '54, 87 86, 54, 7385 ,54, 6315, 54, 5282 ,54,4292 ,54, 327 ,54, 2217 ,54, 11227 ,54, 0037 ,53, 8938 ,53, 7695 ,53, 6271 ,53, 4857 '53 .3437 ', '53 .2254', '53 .1712 ', '53 .12', '53.0679 ', '53.0102', '52.9126 ', '52.8148', '52.7182 ', '52.6207', '52.491 ', '52 .3561', ' 52.2267 ', '52.0908', '51.9405 ', '51.7786', '51.6421 ', '51.5043', '51.4063 ', '51.3087', '51.2117 ', '51.1141', '51.0304 ', '50.9446', '50.8577 ' "50 .7744", "50 .6716", "50 .5655", "50 .4625", "50 .3598", "50 .2569", "50 .153", "50 .0494", "49.9461", "49.8308", "49.7058", "49.582", " 49,4583 ', '49,3473', '49,251 ', '49,1533', '49,0561 ', '48,953', '48,83 ', '48,7064', '48,5812 ', '48,4635', '48,3852 ', '48,2998', '48,2219 ' , 48, 1428, 48, 0327, 47, 9221, 47, 8114, 47, 7007, 47, 5964, 47, 4905, 47, 3875
Hier ist Mein gewünschter Ausgang:
{ '1': [ '8,18142', '8,11846', '8,05988'], '2': ['59 0,4627' , '59 0,3455' , '59 0,2296' , '58 0,4541' , "58 .3302", "58 .2265", "58 .1239", "58 .0314", "57.9405", "57.8496", "57.7514", "57.6746", "57.6098", "57.5414", "57.4722", "57.3517", "57 .2151" ', '57 .0934', '56.9704 ', '56 .8361', '56 .6993 ', '56 .564', '56 .4287 ', '56 .3106', '56 .2 ', '56 .0877', '55 .9782 ', '55 .8869', '55 .8223 ', '55, 7578 ', '55, 6933', '55, 605 ', '55, 4949', '55, 3858 ', '55, .2761', '55, 1612 ', '55, 0097', '54, 8786 ', '54, 7385', '54, 6315 ', '54, 5282', '54, 42292 "54 .327", "54 .2217", "54 .1127", "54.0037", "53.8938", "53.7695", "53.6271", "53.4857", "53.3347", "53.2254", "53.1712", "53.12", '53 .0679 ', '53 .0102', '52 .9126 ', '52 .8148', '52 .7182 ', '52 .6207', '52.491 ', '52 .3561', '52 .2267 ', '52 .0908', '51.9405 ', '51 .7786', '51 .6421 ', '51, 5043', '51, 4063 ', '51 .3 087 ', '51, .2117', '51 .1141 ', '51.0304', '50.9446 ', '50.8577', '50.7744 ', '50.6716', '50.5655 ', '50.4625', '50.3598 ', '50 .2569', '50 .153 ' "50 .0494", "49.9461", "49.8308", "49.7058", "49.582", "49.4583", "49.3473", "49.251", "49 .1533", "49 .0561", "48.953", "48.83", " 48.7064 ', '48 .5812', '48 .4635 ', '48 .3852', '48 .2998 ', '48 .2219', '48 .1428 ', '48.0327' , '47 0,9221' , '47 0,8114' , '47 0,7007' , '47 0,5964' , '47 0,4905' , '47 0,3875' , '47 0,2847' , '47 0,1595' , '47 0,0424' , '46 0,9264' ]}
1. Machst du etwas mit 'm'? 2. "8.05988" ist größer als "59.4627", weil "8" hinter "5" steht, da Sie Strings vergleichen. 3. Soll jede Zeile ein separates Wörterbuch sein? 4. Warum ein Wörterbuch verwenden, wenn die Schlüssel nur ein einfacher Bereich von ganzen Zahlen sind? – TigerhawkT3
1. m ist ein weiterer Satz von Testwerten – Adam
2. Sollte ich float dann vergleichen? 3. Ich mache ein Wörterbuch, und später mache ich eine Reihe von Listen aus den Werten in jedem Schlüssel (hier nicht gezeigt). 4. Ich bin mir nicht sicher ... Ich bin neu in der Codierung. – Adam