程序在break语句后继续循环

时间:2020-09-05 00:15:42

标签: python dictionary break

我是python的新手,我正在练习一些问题。问题是:

TWheel

我的理解是,在“中断”之后它应该结束循环,所以我应该只得到2。相反,它贯穿整个过程,我得到2、5和1。我没有得到什么? >

2 个答案:

答案 0 :(得分:0)

也许更容易理解,如果在分配print(repeats)之后放一个repeats[arr] = ...

迭代1:arr == 2

{2: 1} # key `2` was created and assigned `0 + 1`

迭代2:arr == 5

{2: 1, 5: 1} # key `5` created and assigned  `0 + 1`

迭代3:arr == 1

{2: 1, 5: 1, 1: 1} # key `1` created and assigned `0 + 1`

迭代4:arr == 2

{2: 2, 5: 1, 1: 1} # key `2` was already present, assigned `1 + 1`
repeat[arr] == 2: # evaluates to True, so it breaks

答案 1 :(得分:0)

第一次通过循环,arrs是2。该键在字典中尚不存在,因此创建repeats[2]的值为1,程序将打印{{1} }。

第二遍循环,2是5。该键尚不存在于字典中,因此创建arrs的值为1,程序将打印{{1} }。

第三遍循环,repeats[5]是1。该键尚不存在于字典中,因此创建5的值为1,程序将打印{{1} }。

第四遍循环,arrs是2。该键已经存在于字典中,并且值为1,因此为repeats[1]分配了新值2,并且循环中断。