Pythonで各単語の先頭文字を大文字に変換するプログラム
英語の小文字だけで構成された文が与えられたとき、各単語の最初の文字だけを大文字に変換する方法を解説します。
たとえば、入力が s = "i love my country" の場合、出力は "I Love My Country" となります。
解決の手順
この問題は、以下のステップで解くことができます。
- 文字列
sを空白で分割し、単語のリストを作成する - 結果を格納するための空のリストを用意する
- 各単語に対して
capitalize()関数を使って先頭文字を大文字化し、リストに追加する - リスト内のすべての単語を空白区切りで連結して返す
実装例
実際のコードを見てみましょう。
def solve(s):
words = s.split(' ')
ret = []
for i in words:
ret.append(i.capitalize())
return ' '.join(ret)
s = "i love my country"
print(solve(s))
入力
"i love my country"
出力
I Love My Country
別の方法:title() メソッドを使う
Pythonには文字列の title() メソッドが標準で用意されており、これを使うとより簡潔に書けます。
s = "i love my country"
print(s.title()) # I Love My Country
ただし、title() はアポストロフィ(')などが含まれる場合に「It's」→「It'S」のように意図しない変換をしてしまうことがあります。そのようなケースでは、string モジュールの capwords() 関数を使うのが安全です。
import string
s = "i love my country"
print(string.capwords(s)) # I Love My Country
まとめ
各単語の先頭を大文字にするには、split() で分割して capitalize() を適用する方法が基本です。シンプルな文であれば title() や string.capwords() を使うとコードが短くなり、可読性も向上します。用途に応じて使い分けましょう。
-
Pandas DataFrameの列の先頭文字を大文字に変換する方法
pandasのDataFrame(データフレーム)は、行と列で構成される表形式のデータ構造です。データ処理を行っていると、特定の列に含まれる文字列の先頭文字だけを大文字に変換したい場面に出会うことがあります。この記事では、pandasを使って列の先頭文字を大文字化する方法を解説します。 データフレームの作成 まず、例として「Day」(曜日)と「Subject」(科目)という2つの列を持つデータフレームを作成します。 サンプルコード import pandas as pd # データフレームを作成 df = pd.DataFrame({Day: [mon, tue, wed, thu, fri
-
文字列内の単語の出現回数をカウントするPythonプログラムの作成方法
この記事では、ユーザーから入力された文字列の中に、指定した単語が何回出現するかをカウントし、その結果を出力するPythonプログラムを紹介します。文字列操作の基礎を学ぶのに最適な題材です。 実行例 入力:Python is an interpreted high-level programming language for general purpose programming. カウントする単語:programming 出力:2 上記の例では、「programming」という単語が文中に2回出現しているため、出力は「2」となります。 アルゴリズム wordoccurences(n, p