Хотя цикл while
, безусловно, является лучшим выбором для этого, если вы настаиваете на использовании цикла for
, можно заменить list
подлежащие удалению элементы на None или любой другой различимый элемент. и переопределите list
после цикла for
. Следующий код удаляет четные элементы из списка целых чисел:
nums = [1, 1, 5, 2, 10, 4, 4, 9, 3, 9]
for i in range(len(nums)):
# select the item that satisfies the condition
if nums[i] % 2 == 0:
# do_something_with_the(item)
nums[i] = None # Not needed anymore, so set it to None
# redefine the list and exclude the None items
nums = [item for item in nums if item is not None]
# num = [1, 1, 5, 9, 3, 9]
В случае вопроса в этом посте:
...
for i in range(subjectlength - 1):
for j in range(i+1, subjectlength):
if subject[i] == subject[j]:
#add
time[i] += time[j]
# set to None instead of delete
time[j] = None
subject[j] = None
time = [item for item in time if item is not None]
subject = [item for item in subject if item is not None]