2016-10-05 1 views
0
내가 괄호로 AEM을 데려 가고 싶다는

에 시세를 넣어 줄까? 나는 원본 텍스트를 얻는다.나는, 괄호

+0

당신은 '시험'을 변경되지 않았습니다. 루프를 반복하면서 단어를 변경하면 해당 변경 사항이 원래 문자열에 자동으로 반영되지 않습니다. –

+0

뭔가를 돌려 주어야합니다 ... – blacksite

답변

1

두 가지, 1 단어 당 1 문자 당 1 개를 확인합니다. 2 수정하지 않습니다 text 그냥 word을 설정하고 그걸로 아무것도하지 않습니다.

text = "Agnico Eagle Mines Limited AEM" 


def add_brackets(test): 
    outstr = "" 
    for word in test.split(" "): 
     if word.isupper(): 
      outstr += " (" + word + ")" 
     else: 
      outstr += " " + word 
    return outstr.strip() 


print(add_brackets(text)) 

편집 : 애호가

text = "Agnico Eagle Mines Limited AEM" 


def add_brackets(test): 
    return " ".join(["({})".format(word) if word.isupper() else word for word in test.split(" ")]) 

print(add_brackets(text)) 
+0

명확한 설명에 감사드립니다! – datalearner

0

이 정규 표현식 치환 꽤 간결 것입니다 : (공백 등) 단어 경계로,이 함께 다수의 대문자를 찾습니다

>>> import re 
>>> text = "Agnico Eagle Mines Limited AEM" 
>>> re.sub(r'\b([A-Z]+)\b', r'(\1)', text) 
'Agnico Eagle Mines Limited (AEM)' 

그 다음에, 일치하는 그룹을 동일한 텍스트 (\1)로 대체하고 괄호를 추가합니다. 함수에서

은 : 항상 원래 문자열을 인쇄 할 수 있도록

>>> import re 
>>> def add_brackets(s): 
...  return re.sub(r'\b([A-Z]+)\b', r'(\1)', s) 
... 
>>> print(add_brackets(text)) 
Agnico Eagle Mines Limited (AEM)