在Python3中将循环转换为lambda以返回true或false,而不使用筛选方法?
我编写了以下代码,以便在列表中的某个元素重复时实现False的True。我想将此代码转换为lambda版本以减少代码长度。不使用filter()方法是否仍可以执行此操作在Python3中将循环转换为lambda以返回true或false,而不使用筛选方法?,python,python-3.x,lambda,Python,Python 3.x,Lambda,我编写了以下代码,以便在列表中的某个元素重复时实现False的True。我想将此代码转换为lambda版本以减少代码长度。不使用filter()方法是否仍可以执行此操作 def isoscelesTriangle(s): for i in range(len(s)): if s.count(s[i]) > 1: return True return False 这使用了lambda: def isoscelesTriangle(s
def isoscelesTriangle(s):
for i in range(len(s)):
if s.count(s[i]) > 1:
return True
return False
这使用了
lambda
:
def isoscelesTriangle(s):
return any(map(lambda x: s.count(x) > 1, s))
但是,说真的,你只需要一个以下。这要求您仅将列表的长度与其集的长度进行比较
:
def isoscelesTriangle(s):
return len(s) != len(set(s))
您是否接受较短的代码,但不接受
lambda
版本?实际上,我的主要目标是获得一个lambda版本,我知道使用其他技术可以缩短此代码,但我正在寻找lambda版本。Tanx,您使用len()和len(set(s))是对的,但我对在lambda版本中使用filter()和map()感到困惑。