2016-06-28 3 views
-2

에서 예외 문자열의 각 단어 첫 글자를 대문자로 is ","it ","if "등? 우리가 불필요한 임시 변수를 제거하고을 받아 여기에이 내가 주어진 것입니다 파이썬

def sensible_title_caps(str, no_caps_list = ["and", "is", "it", "if"]): 
    words = [] 
    for word in str.split(): 
     if word not in no_caps_list: 
      word = word.capitalize() 
     words.append(word) 
    return " ".join(words) 

:로

no_caps_list = ["and", "is", "it", "if"] 
def cap(s):  
    lst = s.split() 
    res = ''  
    for word in lst: 
     if word not in no_caps_list: 
      word = word.capitalize() 
     res = res + ' '+ word 
    return res 

이 기능의 청소기 버전을 작성할 수 있습니다

+0

당신은 무엇을하려고 않았다

또는 끔찍한

는 지능형리스트로 난독? 특정 문제가 무엇입니까? (c) –

+0

그래서 길이가 4 이상이고 res {0 : 1] .upper()를 사용할 수 있습니다. – dmitryro

답변

3

그냥 대문자 안되는 단어를 필터링 의미없는 기본값으로 매개 변수 (no_caps_list)로 대문자로 표시하지 않을 단어 목록.

def obfuscated_caps(str, no_caps_list = ["and", "is", "it", "if"]): 
    return " ".join([w in no_caps_list and w or w.title() for w in str.split()]) 
+0

그들은 쓸모없는 변수가 아니므로 더 짧은 목록 이해력으로 코드를 난독 화하면 질문자가 도움이되지 않습니다 문제에 대한 이해. –

+0

그래, 깨끗한 대체 버전이 있지만 목록 이해력을 사용하면 목록이 깔끔 해져서 어수선하게 읽히지 않을 것입니다. –

+0

예. 이 무언가로 생각하면,리스트 독해력은 읽기가 조금 어려울 것입니다. 나는 만족한다;) – zondo

관련 문제