これはいい:
import string
string.capwords("proper name")
Out: 'Proper Name'
これはあまり良くありません:
string.capwords("I.R.S")
Out: 'I.r.s'
頭字語に対応するようにキャップワードを実行する文字列メソッドはありませんか?
これはいい:
import string
string.capwords("proper name")
Out: 'Proper Name'
これはあまり良くありません:
string.capwords("I.R.S")
Out: 'I.r.s'
頭字語に対応するようにキャップワードを実行する文字列メソッドはありませんか?
これはうまくいくかもしれません:
import re
def _callback(match):
""" This is a simple callback function for the regular expression which is
in charge of doing the actual capitalization. It is designed to only
capitalize words which aren't fully uppercased (like acronyms).
"""
word = match.group(0)
if word == word.upper():
return word
else:
return word.capitalize()
def capwords(data):
""" This function converts `data` into a capitalized version of itself. This
function accomidates acronyms.
"""
return re.sub("[\w\'\-\_]+", _callback, data)
これがテストです:
print capwords("This is an IRS test.") # Produces: "This Is An IRS Test."
print capwords("This is an I.R.S. test.") # Produces: "This Is An I.R.S. Test."
いいえ、標準ライブラリにはそのようなメソッドはありません。
そのような機能があったとしても、「IRS」の処理を依頼されたらどうするのでしょうか? IRS でさえ、自分たちをドットなしで「IRS」と呼んでいます。
リスト内包表記を使用しました: [ ".".join( [ string.capwords(l) for l in entry.split(".") ] ) for entry in original_list ]