将循环转换为python 3中的lambda以返回true或false,而无需使用filter方法?

时间:2019-03-10 05:57:23

标签: 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 

1 个答案:

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