等号在for循环迭代中

时间:2014-07-29 17:09:26

标签: python for-loop

请解释下面循环中发生的事情:

a = [1,2,3]
x = 0
for i in a:
    x += i == 1
    print x

上面==做了什么?

3 个答案:

答案 0 :(得分:3)

==equality operator。如果True等于1,则返回布尔值i,否则返回False

Python布尔值是int的子类,将它们相加是一个有效的选项; True等于1,False等于0

x += (expression)使用augmented assignment statement;表达式的结果将添加到x

因此,每次i等于1时,x都会增加1:

>>> i = 1
>>> i == 1
True
>>> 0 + (i == 1)
1
>>> 5 + (i == 1)
6

然后代码计算a中的元素数等于1。

答案 1 :(得分:3)

这看起来有点像家庭作业问题,但我会蚕食(不是一口)。

如果我添加这样的分组,你会怎么说:

x += (i == 1)

答案 2 :(得分:2)

python中的

==C/C++中的x += i == 1是相等的关系运算符。

x += (i == 1)等同于Add 1 to x iff i is equal to 1,表示

for i in a: if i == 1: x += 1 else: x += 0 print x

COde可以等效地写为

{{1}}