2016-10-05 9 views
0

をティッカーを入れたいですか?私は元のテキストを取得します。は、私はそのテキストは次のようになりますので、括弧の中にAEMを置きたい括弧で

+0

それは常に元の文字列を出力しますので、あなたは、「テスト」を変更していません。ループして単語を変更すると、その変更は自動的に元の文字列に反映されません。 –

+0

あなたは何かを返す必要があります... – blacksite

答えて

1

2つのこと、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) 
関連する問題