Да, это безопасно, если этот код не является одновременным, если другие потоки не собираются использовать mylist одновременно. Но пока у нас есть GIL Я думаю, это безопасно. Лучше всего обернуть его в функцию и вернуть новую копию таким образом, чтобы побочные эффекты были свободны
def create_my_list(mylist):
mylist = mylist[:] #to create local copy as mylist is passed by reference
#mylist is a localcopy here
for idx, r in enumerate(mylist):
if condition:
del mylist[idx]
break
return mylist