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



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

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

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

我不确定这是否算作"更容易",但这样做肯定更短:

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

我建议使用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 的变量

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))
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

最新更新