我正在使用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
答案 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 = 0
和True = 1
。
与列表表达式相反,它仅对相等性进行2次测试(列表表达式对3次进行测试)。因此,这可能是最快的解决方案。测试:
single([5, 5, 7]) ## 7
single([5, 7, 5]) ## 7
single([7, 5, 5]) ## 7