如果列表中的元素重复,我编写了以下代码来获取 False 的 True 。我想将此代码转换为lambda版本以减少代码长度。反正不用 filter()方法就可以做到吗?
def isoscelesTriangle(s):
for i in range(len(s)):
if s.count(s[i]) > 1:
return True
return False
答案 0 :(得分:2)
这使用lambda
:
def isoscelesTriangle(s):
return any(map(lambda x: s.count(x) > 1, s))
但是,严重的是,您只需要一个。这要求您仅将列表的长度与其set
的长度进行比较:
def isoscelesTriangle(s):
return len(s) != len(set(s))