ウェブサイト検索

文字列リスト内の文字の ASCII 値の合計を見つける Python プログラム


この記事では、文字列のリスト内の文字の ASCII 値の合計を見つける Python プログラムを学習します。

使用される方法

このタスクを達成するためのさまざまな方法は次のとおりです-

  • forループ、+演算子、ord()関数の使用

  • list Comprehension、sum()、ord() 関数の使用

文字列要素を含む入力リストを取得したと仮定します。 @@ を見つけます

入力

Input List: ['hello', 'tutorialspoint', 'python', 'platform']

出力

[52, 209, 98, 101]

ここで、hello などの各リスト要素のすべての文字の ASCII 値は 8+5+12+12+15=52 で、ASCII (h)=104 から始まります。 ASCII 値、つまり ASCII (a)=96 なので、104-96 は 8 になります。

方法 1: for ループ、+ 演算子、ord() 関数を使用する

アルゴリズム (ステップ)

以下は、目的のタスクを実行するために従うべきアルゴリズム/手順です。

  • 入力 リストを保存する変数を作成し、指定されたリストを出力します。

  • 空のリストを作成して、リストのすべての文字列要素の ASCII 値の合計を保存します。

  • for ループを使用して、入力リストの各要素を調べます。

  • ASCII 値の合計を格納する変数を取得し、それを 0(asciiValsSum) に初期化します。

  • 別のネストされた for ループを使用して、現在のリスト要素の各文字を調べます。

  • ord() 関数を使用して文字の ASCII 値を取得し (指定された文字の Unicode コードを数値として返します)、それを上記の asciiValsSum 変数に追加します。

  • append() 関数 (最後に要素をリストに追加) を使用して、結果のリストに ASCII 値の合計を追加します。

  • 入力リスト内の文字 ASCII 値の合計のリストを出力します。

次のプログラムは、for Loop、sum()、および ord() 関数を使用して、文字列リスト内の文字の ASCII 値の合計を返します。

# input list
inputList = ["hello", "tutorialspoint", "python", "platform"]

# printing input list
print("Input List:", inputList)

# storing the total sum of ASCII values of all string elements of the list
resultList = []

# traversing through each element of an input list
for i in inputList:
   
   # initializing ASCII values sum as 0
   asciiValsSum = 0

   # traversing through each character of the current list element
   for char in i:
      
      # getting the ASCII value of the character using the ord() function and
      
      # adding it to the above asciiValsSum variable
      asciiValsSum += (ord(char) - 96)

# appending ascii values sum to the resultant list
   resultList.append(asciiValsSum)

# printing list of the sum of characters ASCII values in an input list
print("List of the sum of characters ASCII values in an input list:", resultList)

出力

上記のプログラムを実行すると、次の出力が生成されます。

Input List: ['hello', 'tutorialspoint', 'python', 'platform']
List of the sum of characters ASCII values in an input list: [52, 209, 98, 101]

方法 2: リスト内包表記、sum()、ord() 関数を使用する

リストの内包表記

既存のリストの値に基づいて新しいリストを作成する場合、リスト内包表記により、より短く簡潔な構文が提供されます。

sum() 関数 - 反復可能なすべての項目の合計を返します。

アルゴリズム (ステップ)

以下は、目的のタスクを実行するために従うべきアルゴリズム/手順です。

  • リスト内包表記を使用して、文字列リストの各文字列をトラバースします。

  • 別のネストされたリスト内包表記を使用して、文字列の文字をたどります。

  • 各文字 ASCII 値から基本 ASCII 値 (96) を減算します。

  • sum() 関数を使用して、これらの文字の ASCII 値の合計を取得します。

  • 入力リスト内の文字 ASCII 値の合計のリストを出力します。

次のプログラムは、リスト内包表記、sum()、および ord() 関数を使用して、文字列リスト内の文字 ASCII 値の合計を返します。

# input list
inputList = ["hello", "tutorialspoint", "python", "platform"]

# printing input list
print("Input List:", inputList)

# Traversing in the given list of strings (input list)

# Using nested list comprehension to traverse through the characters of the string

# Calculating resulting ASCII values and getting the sum using sum() function
resultList = [sum([ord(element) - 96 for element in i]) for i in inputList]

# printing list of the sum of characters ASCII values in an input list
print("List of the sum of characters ASCII values in an input list:\n", resultList)

出力

実行すると、上記のプログラムは次の出力を生成します。

Input List: ['hello', 'tutorialspoint', 'python', 'platform']
List of the sum of characters ASCII values in an input list:
[52, 209, 98, 101]

結論

この記事では、2 つの異なる方法を使用して文字列リスト内の文字の ASCII 値の合計を計算する方法を学びました。さらに、ネストされたループではなく、ネストされたリスト内包表記を使用する方法を学びました。さらに、 ord() メソッドを使用して文字の ASCII 値を取得する方法を学びました。

関連記事: