최근에 /usr/share/dict/words
을 순환하고 내 ispalindrome(x)
방법을 사용하여 회문 목록을 반환하는 방법을 작성했습니다. 여기에 코드가 있습니다 ... 무엇이 잘못 되었나요? 그것은 단지 10 분 동안 포장 마차 다음파이썬과 회문
def reverse(a): return a[::-1] def ispalindrome(a): b = reverse(a) if b.lower() == a.lower(): return True else: return False wl = open('/usr/share/dict/words', 'r') wordlist = wl.readlines() wl.close() for x in wordlist: if not ispalindrome(x): wordlist.remove(x) print wordlist
'ispalindrome = lambda a : a [:: - 1] .lower() == a.lower()'라는 짧은 인라인 정의는 ~ 25 %의 시간을 절약 해줍니다. – eumiro
문제와 관련이 없지만 두 번째 함수를'return (reverse (a) .lower() == a.lower())'로 줄일 수 있습니다. '=='는 이미'True' 또는'False'를 리턴 할 것이므로'if' 문을 감쌀 필요는 없습니다. –