Python 程序查找字符串列表中字符 ASCII 值的总和


在本文中,我们将学习一个 Python 程序,用于查找字符串列表中字符的 ASCII 值之和。

使用的方法

以下是完成此任务的各种方法 -

  • 使用 for 循环、+ 运算符、ord() 函数

  • 使用列表推导式、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 循环、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]

结论

在本文中,我们学习了如何使用两种不同的方法来计算字符串列表中字符 ASCII 值的总和。此外,我们学习了如何使用嵌套列表推导式而不是嵌套循环。此外,我们学习了如何使用 ord() 方法获取字符的 ASCII 值。

更新于: 2023年1月27日

3K+ 次浏览

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告