Преобразовать цикл в лямбду в Python 3, чтобы вернуть true или false без использования метода фильтра? - PullRequest
1 голос
/ 10 марта 2019

Я написал следующий код, чтобы получить True из False , если элемент списка дублируется в нем. Я хочу преобразовать этот код в лямбда-версию, чтобы уменьшить длину кода. Есть ли способ сделать это без использования метода filter () ?

def isoscelesTriangle(s):
    for i in range(len(s)):
        if s.count(s[i]) > 1:
            return True
    return False 

1 Ответ

2 голосов
/ 10 марта 2019

Используется lambda:

def isoscelesTriangle(s):
    return any(map(lambda x: s.count(x) > 1, s))

Но, если серьезно, вам нужен только один.Это требует, чтобы вы сравнивали только длину списка с длиной его set:

def isoscelesTriangle(s):
    return len(s) != len(set(s))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...