Mam kilka plików CSV zawierających dane i liczby w czasie, napisałem funkcję zwracającą pierwsze wystąpienie liczby poniżej progu (x) w ten sposób:Powracający pierwszy indeks występowania liczby na liście
def bounce(tickList,x):
n = 0
for i in tickList:
if float(i[1]) < x:
return n
break
n += 1
wyjątkiem, że kiedy pętla wykonanie funkcji odrzuceń w ten sposób:
for i in os.listdir(resultDir):
if "csv" in i:
csvFile = resultDir+i
print csvFile
with open(csvFile, 'rb') as f:
reader = csv.reader(f)
tickList = []
for line in reader:
tickList.append(line)
print bounce(tickList,5)
utrzymuje się na powrocie do zera (choć pierwsza wartość jest powyżej próg).
Gdzie się mylę?
Oto przykład jednego z plików csv:
1373289767.454535,9.9
1373289769.728528,9.9
1373289771.817576,9.9
1373289773.813036,11.7
1373289775.810985,11.7
1373289777.769641,11.7
1373289779.783134,12.2
1373289781.774255,11.8
1373289783.799892,12.0
1373289785.812967,11.4
1373289787.816991,11.4
1373289789.790835,11.3
1373289791.811245,10.9
1373289793.880356,10.8
1373289795.846866,10.7
1373289797.847552,10.6
1373289799.858929,10.6
góry dzięki.
EDIT po komentarzach
Oto nowa funkcja:
def bounce(tickList,x):
n = 0
for i in tickList:
if float(i[1]) < x:
return n
n += 1
jeśli mogę wydrukować pływaka (I) [1] zwraca odpowiednie numery więc dzwoni odpowiednie pliki .
DRUGA EDYCJA
znaleźć problemu, „poziom” ja karmienie było w rzeczywistości str a nie int, dzięki za każdego, kto miał wygląd i pomógł.
Nie jestem pewien, czy identyfikacja w podanym przykładzie jest prawidłowa, ale co to jest 'break' po poleceniu' return n'? – Ma3x
Co to pokazuje, jeśli drukujesz float (i [1])? – Jiminion
Tak, instrukcja break nie wydaje się pomagać ..... – Jiminion