为什么我的for循环未遍历列表的每个元素?

问题描述

我设法解决了问题,但是我不理解问题本身。是的,我很幸运地修复了它,但是如果我不明白为什么会遇到这个问题,它就不会有用。

在对象函数内运行for循环时,此循环始终跳过列表的一个值,就像将for循环步骤设置为2一样。

下面是我的第一个代码的非常非常简化和改编的版本,但是它很好地说明了它的工作原理。

class Food:
    def __init__(self,my_list):
        self.my_list = my_list

    def food_iterator(self):
        while True:
            for element in self.my_list:
                print(element)

Food(['pasta','chicken','porc','cheese','lasagna']).food_iterator()

在创建原始列表的副本时:

class Food:
    def __init__(self,my_list):
        self.my_list = my_list

    def food_iterator(self):
        my_list_copy = [m for m in self.my_list])

        while True:
            for element in my_list_copy:
                print(element)

Food(['pasta','lasagna']).food_iterator()

它运行得很好。但是我不明白为什么以前不起作用,为什么现在不起作用...

真的很高兴听到您的想法!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)