2013-05-25 4 views
0

여기 내 기능의 목표입니다 :내 기능을 정리 도와주세요

이 절차를 정의 find_last, 두 개의 문자열하는 검색 문자열과 대상 문자열을 입력으로 받아, 마지막 위치를 반환 대상 문자열이 나타나는 검색 문자열 또는 발생이없는 경우 -1입니다.

def find_last(target, search): 
    find = target.find(search, 0) 

    if find != -1: 
     targets = target.find(search, find) 

     while targets != -1: 
      find = find + 1 
      targets = target.find(search, find) 
     return find - 1 
    else: 
     return -1 

코드는 내가 return find - 1으로 찾고 있어요 답을 반환하지만 나는 일에 대해 갈 수있는 더 좋은 방법이 알고 여기 Here is a link to the question.

그리고

지금까지 내 함수의 이.

도움이 될 것입니다.

+0

에서이 멋진 조각을 인용 저항 할 수 있습니까?!?! – donfede

+0

@donfede : 완벽하게 작동하는 코드를 개선하는 방법을 묻는 것은 잘못된 것이 아닙니다. – Blender

+0

XKCD의 경우 [코드 검토] (http://codereview.stackexchange.com/questions) – srikanta

답변

9

기본적으로 target.rfind(search)을 구현했습니다.

6

rfind을 사용하지 않는 이유는 무엇입니까?

>>> d = "ball foo ball" 
>>> f = "ball" 
>>> d.rfind(f) 
12 

그래서 방법은 하나 라이너 :

def find_last(target, search): 
    return target.rfind(search) 

당신은 target.rfind(search)을 반환하고 -1에 대한 호출 방법 검사에서 적절하게 처리 할 수 ​​있습니다됩니다.

당신은 숙제 검토를 위해 SO에 오는 XKCD

look I am flying with Python :P

+0

+1에 대한 좋은 후보가 될 수 있습니다. – CppLearner

관련 문제