Pythonのmap関数と辞書を活用して各単語のASCII値の合計を計算する方法
この記事では、map関数と辞書(dict)を組み合わせて、文中の各単語ごとのASCII値の合計、および文全体の合計を計算する方法を解説します。
例として、次のような文を考えてみましょう。
"hi people of the world"
この場合、各単語に対応するASCII値の合計は次のようになります。
209 645 213 321 552
そして、これらをすべて足した文全体の合計は 1940 となります。
処理の流れ
基本的な考え方は以下の通りです。
- map関数とord関数を使って、単語内の各文字のASCII値を取得します。
- sum関数でそれらの値を合計し、単語ごとのASCII値の合計を求めます。
- この処理を文内のすべての単語に対して繰り返し、最終的な合計値を算出します。
コード例
sent = "hi people of the world"
words = sent.split(" ")
result = {}
# 各単語のASCII値の合計を計算
for word in words:
result[word] = sum(map(ord, word))
totalSum = 0
# 辞書を使って各単語のASCII値の合計リストを作成
sumForSentence = [result[word] for word in words]
print('Sum of ASCII values:')
print(' '.join(map(str, sumForSentence)))
print('Total of all ASCII values in sentence: ', sum(sumForSentence))実行結果
上記のコードを実行すると、以下の出力が得られます。
Sum of ASCII values: 209 645 213 321 552 Total of all ASCII values in a sentence: 1940
ポイント解説
- sent.split(" "):文をスペースで区切り、単語のリストに分割します。
- map(ord, word):単語の各文字にord関数を適用し、ASCII値のイテレータを生成します。
- sum(map(ord, word)):各文字のASCII値を一括で合計できます。
- result[word]:辞書に単語をキーとして保存することで、後から各単語の合計値を簡単に参照できます。
このように、map関数と辞書を組み合わせることで、簡潔かつ効率的に文字列のASCII値集計を実現できます。
-
Pythonで辞書の値を更新する方法|update()メソッドの使い方を解説
Pythonの組み込み型である辞書(dict)クラスには、update()メソッドが標準で用意されています。このメソッドは、別の辞書オブジェクトを引数として受け取り、呼び出し元の辞書にマージ(統合)することができます。 基本構文 D1.update(D2) 動作の仕組み D2の内容がD1に統合されます。このとき、キーの有無によって以下のように挙動が変わります。 D2のキーがD1にすでに存在する場合:そのキーの値がD2の値で上書き(更新)されます。 D2のキーがD1に存在しない場合:新しいキーと値のペアとしてD1に追加されます。 実行後、D1は更新された内容を保持します。 使用例 >&
-
Pythonで関数を引数として渡す方法をわかりやすく解説
Pythonでは、関数もオブジェクトの一つとして扱われるため、他の関数の引数として渡すことができます。この仕組みを活用すると、柔軟で再利用性の高いコードを書くことができます。map()関数を使った例Pythonが標準で提供している代表的な例が、第一引数に関数を受け取る map() 関数です。map(function, iterable, ...) — iterable(イテラブル)の各要素に対してfunctionを適用し、その結果を返します。もちろん、独自に定義したカスタム関数でも、引数として関数を受け取るように実装できます。自作関数sqr(x)を引数として渡すここでは、リストの各要素を2乗す