Без точного понимания, почему вы хотите делать то, что хотите, и нужно ли это или нужно избегать, вот решение, которое может сделать то, что вы хотите:
nums = list(range(2, 11))
count = 0
for num in nums:
new_nums = list(filter(lambda a: a == num or a % num, nums))
del nums[:]
nums.extend(new_nums)
count += 1
print(count) # 4
print(nums)
Ваша первоначальная реализация создавала новая переменная , вызываемая со старым именем nums
.Однако это была новая переменная / объект памяти, о которой цикл не знал.Предлагаемое решение сохраняет исходный объект и изменяет его, сначала удаляя все существующие элементы, а затем добавляя все новые элементы списка.