获得不等于计数函数参数的变量的最佳方法?

时间:2018-10-16 01:45:33

标签: python count

我正在使用count函数检查3个变量中有2个是否等于一个数字。调用函数后,有没有比下面的方法更简单或更好的方法来找到与count函数中的数字不相等的变量?我正在寻找不带软件包的纯Python解决方案。

这是我目前用来获取不等于count函数参数的变量的方法:

num1 = 5
num2 = 7
num3 = 5
list = [num1, num2, num3]

if list.count(5) == 2:
    for e in list:
        if e != 5:
            print(e)

我正在使用Python 3.7

4 个答案:

答案 0 :(得分:1)

我不确定这是否算是“轻松”,但是这样做肯定会更短:

list = [5,7,5]
[x for x in list if x != 5]

答案 1 :(得分:0)

我建议使用numpy的矢量化操作,该操作快速且非常直观。

import numpy as np
a = np.array([5,7,10])

然后

>>> a == 5
array([ True, False, False])

>>> (a == 5).sum() # how many are equal to 5?
1

>>> a[a!=5]
array([ 7, 10])

当然,请告知您是否需要纯Python方法。

答案 2 :(得分:0)

您要打印计数不为2的变量

lst = [5, 7 , 5]

for i in lst:
    if lst.count(i) != 2:
        print(i)

# 7

print(*(i for i in lst if lst.count(i) != 2))

答案 3 :(得分:0)

def single(tri):
    return tri[2] if tri[0] == tri[1] else tri[:2][tri[0] == tri[2]]

它使用强制False = 0True = 1。 与列表表达式相反,它仅对相等性进行2次测试(列表表达式对3次进行测试)。因此,这可能是最快的解决方案。测试:

single([5, 5, 7]) ## 7
single([5, 7, 5]) ## 7
single([7, 5, 5]) ## 7