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 值。