Python 中的 for 循环如何工作?

学员

我有这个代码:

Sentence = ['abc', 'bcd', 'cde', 'dea', 'eab', 'abc']
Words = list()
iterations = 0
a = 0

for word in Sentence:
    Words.append(0)
    for nextWord in Sentence:
        if(word == nextWord):
            Words[iterations] += 1
            Sentence.remove(nextWord)
            a +=1
    iterations += 1

我希望两个 for 循环都将从Sentence加载所有元素,因此在此循环结束时Sentence将为空。但事实并非如此,这段代码后面的句子是这样的:['bcd', 'dea']。拜托,你能解释一下为什么吗?

如果您能向我推荐此代码的一些改进,我将不胜感激。

scrbbL

当您在 Python 中遍历列表时,对您正在遍历的列表的任何修改都会对 for 循环产生影响。例如,拿这个代码:

my_list = list()
my_list.append("hello")
for element in my_list:
    my_list.append("hello")

这段代码将永远运行,因为 my_list 的大小不断增长。

对于您的代码,您必须考虑 for 循环内部发生的事情。

您的列表中有两个 'abc' 实例,因此在第一次迭代后,检查列表中的第一个元素,它们都从 Sentence 中删除。这会留下一个看起来像这样的列表

['bcd', 'cde', 'dea', 'eab']

现在,Python 检查列表中的第二个元素。这就是问题产生的地方。Python 跳过 'bcd' 元素并直接移动到 'cde',从 Sentence 中删除 'cde',留下一个如下所示的列表:

['bcd', 'dea', 'eab']

现在,Python 检查列表中的第 3 个元素,即 'eab',然后将其从列表中删除,然后 Python 知道 Sentence 中没有更多元素可以迭代,因为它已经到达末尾并且 for 循环中断, 留下这样的句子

['bcd', 'dea']

我不完全确定您最终希望代码做什么,所以我无法真正提出解决方案,但我希望这是有道理的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使列表循环在Selenium Python中工作?

来自分类Dev

for循环中的列表在Python中如何工作?

来自分类Dev

如何在python的matlab工作区中实现基本循环?

来自分类Dev

Python:如何使嵌套循环工作?

来自分类Dev

for循环在Python中如何工作?像深入了解正在发生什么过程?

来自分类Dev

While循环在Python中无法正常工作

来自分类Dev

“ foo(* a)”在Python中如何工作?

来自分类Dev

递归在python中如何工作?

来自分类Dev

Python中的舍入如何工作?

来自分类Dev

“ \ b”在Python中如何工作?

来自分类Dev

“ foo(* a)”在Python中如何工作?

来自分类Dev

过滤在Python中如何工作?

来自分类Dev

Python:For 循环仅在 Python 中工作一次

来自分类Dev

嵌套在for循环中的python如何工作?

来自分类Dev

循环如何在Decorator中工作(记忆)

来自分类Dev

Bash脚本中的for循环如何工作?

来自分类Dev

[[]]如何在r中的for循环中工作?

来自分类Dev

如何让 clearInterval() 在 JavaScript 中循环工作

来自分类Dev

Python循环相对导入在python 3中工作但在python 2中不工作

来自分类Dev

如何使外部for循环在Java中为内部for循环工作

来自分类Dev

python 3中for循环的工作有增量问题

来自分类Dev

如何在python中退出while循环?

来自分类Dev

如何限制Python中循环的迭代次数?

来自分类Dev

如何打破Python中的嵌套循环?

来自分类Dev

如何在Python中退出循环?

来自分类Dev

如何在python中循环追加脚本

来自分类Dev

如何加快python中的嵌套循环

来自分类Dev

我如何控制python中for循环的迭代

来自分类Dev

如何加快python DataFrame中的嵌套循环?

Related 相关文章

热门标签

归档