Python_Crash_Course书中alien_invasion的问题
本帖最后由 duke0522 于 2020-7-16 15:39 编辑不知道哪位大神看过Python_Crash_Course这本书。
12.8.5中删除消失的子弹一节里,for中循环为啥要用bullets.copy(),干嘛要用bullets的副本呢?
不用副本好像不影响效果
# Get rid of bullets that have disappeared.
for bullet in bullets.copy():
if bullet.rect.bottom <= 0:
bullets.remove(bullet) 因为在for循环中改变for所遍历的列表是很不好的,有可能会少遍历几个元素。
这个应该算是基础知识点了 qiuyouzhi 发表于 2020-7-16 15:42
因为在for循环中改变for所遍历的列表是很不好的,有可能会少遍历几个元素。
这个应该算是基础知识点了
你的意识是:如果对元素进行修改的话,可能会漏掉某些元素
我的理解对吗? qiuyouzhi 发表于 2020-7-16 15:42
因为在for循环中改变for所遍历的列表是很不好的,有可能会少遍历几个元素。
这个应该算是基础知识点了
这段代码里,for循环遍历的是整个的bullets副本,但是却对bullets本身进行了删除元素的操作
是这个意思吗? duke0522 发表于 2020-7-17 17:07
这段代码里,for循环遍历的是整个的bullets副本,但是却对bullets本身进行了删除元素的操作
是这个意思 ...
是的
页:
[1]