У меня есть следующий список:Python - Сравнение 2 поплавки
[0.12458333333051996, 0.7976157407465507, 0.4842939814843703, 0.9736921296280343, 0.4590740740750334, 0.48178240740526235, 0.46826388888439396, 0.0013078703705105, 0.4625000000014552, 0.4758796296300716, 0.4797685185185401, 6.87130787037313, 0.49761574074364034, 2.9876041666648234, 0.4683564814768033, 0.45549768517958, 0.43494212962832535, 2.030381944445253, 0.48494212963123573, 0.817592592597066]
Я бегу этот код в приведенном выше списке:
for dt in dtime_list:
if dt > 0.00694444444444444:
dtime_list.remove(dt)
print(dtime_list)
Выход:
==>[0.7976157407465507, 0.9736921296280343, 0.48178240740526235, 0.0013078703705105, 0.4758796296300716, 6.87130787037313, 2.9876041666648234, 0.45549768517958, 2.030381944445253, 0.817592592597066]
Я ожидал, что там не будет оставаться поплавком, превышающим 0,00694444444444444. Почему это происходит и как я могу это исправить?
Мой массив на самом деле имеет значения float, считанные из excel для времени, если «dt> 0.00694444444444444« Я пытаюсь найти значения, превышающие 10 минут, и удалить их из списка.
Вы никогда не должны изменять список пока переборе над ним. Начните с нового пустого списка и скопируйте только те элементы, которые вы хотите. –
Дубликат [this] (http://stackoverflow.com/questions/4081217/how-to-modify-list-entries-during-for-loop)? –