我有一个如下所示的数组:
myarray = array([[Me, False], [Me, True], [Partner, False], [Me, True], [Me, False],[Me, True],[Partner, True]])
我尝试做的是每次[Me,True]出现时启动计数器并具有该计数器增量,直到[Partner,True]或[Partner,False]出现在数组中。每次这个计数器遇到[Me,True]并因此重置时,我打算将它添加到另一个变量中以保持总和。
如果total_counter = 0且temp_counter = 0,
在上面的示例中,由于[Me,True]出现在[Partner,False]之前,temp_counter将增加到1,然后在遇到[Partner,False]并重置为0时添加到total_counter。
现在total_counter = 1,temp_counter = 0
当接下来显示[Me,True]时,temp_counter会在遇到[Partner,True]并重置为0并且total_counter = 4之前达到3。
我给你这一切只是为了提供上下文,但我的问题是在我的代码的开头:
for x,y in myarray:
if x == "Me":
print x,y
temp_counter = temp_counter + 1
[Me, False]
[Me, True]
etc
这很好用。但是如果我做的话
for x,y in myarray:
if x == "Me" and y == "True":
temp_counter = temp_counter + 1
print x,y
似乎根本没有触发。是否存在关于for循环评估这种情况的方式,使得它...只看x两个" Me"和"真"或者其他的东西?任何解释都会非常感激!
-Mano
答案 0 :(得分:1)
此:
2016-04-26
必须删除if x == "Me" and y == "True":
周围的引号。在Python中,布尔值和字符串不等价。