如何命令Python不要将True计为1?

时间:2017-09-15 14:51:57

标签: python-3.x

count([5,2,1,'5',9,5,True],1)将显示2,因为它将True视为1.我如何更改主代码,以便当我想检查序列中有多少1时,它将只返回1。

这是我的主要代码

def count(L,x):
    k = 0
    for i in L:
        if x == i :
            k+= 1

    return k

2 个答案:

答案 0 :(得分:1)

您可以将x == i更改为x is i

>>> x = True
>>> y = 1
>>> x == y
True
>>> x is y
False

答案 1 :(得分:1)

只需在支票上添加isinstance

def count(L,x):
    k = 0
    for i in L:
        if not isinstance(i, bool) and i == x:
            k+= 1
    return k

或明确过滤i is not True。 I.e if i is not True and i == x: