问题描述
我是python的新手,我正在练习一些问题。问题是:
TWheel
我的理解是,在“中断”之后它应该结束循环,所以我应该只得到2。相反,它贯穿整个过程,我得到2、5和1。我没有得到什么? >
解决方法
也许更容易理解,如果在分配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,1: 1} # key `2` was already present,assigned `1 + 1`
repeat[arr] == 2: # evaluates to True,so it breaks
,
第一次通过循环,arrs
是2。该键在字典中尚不存在,因此创建repeats[2]
的值为1,程序将打印{{1} }。
第二遍循环,2
是5。该键尚不存在于字典中,因此创建arrs
的值为1,程序将打印{{1} }。
第三遍循环,repeats[5]
是1。该键尚不存在于字典中,因此创建5
的值为1,程序将打印{{1} }。
第四遍循环,arrs
是2。该键已经存在于字典中,并且值为1,因此为repeats[1]
分配了新值2,并且循环中断。