为什么从ruby中的列表中删除元素在for循环中不起作用?

Rus*_*ell 2 ruby arrays

some_list = ['a', 'b', 'c']

for l in some_list
  some_list.delete_at(some_list.index(l))
end

puts some_list.inspect
Run Code Online (Sandbox Code Playgroud)

事实证明,在执行结束时some_list等于["b"].它不应该删除一切吗?

mui*_*bot 8

在第一个循环中,l在索引0处,并且'a'被删除.

然后它再次循环,并且l在索引1处,现在是'c'('a'被删除,记得吗?).它删除'c'并完成:)