首页 > 解决方案 > 列表中的字符-数字对:当我知道字符/字母时如何获取数字?

问题描述

我想要一个程序来计算名称(或任何单词)的数值。因此,如果我list_c_a在图像中有简单的输入,例如,我如何识别字母、等robert的相应数值,以便我可以将它们相加?另外:我怎样才能确保大写字母()可以?'r''o''b'"R"obert

list_c_a = [('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5), ('f', 6), ('g', 7), ('h', 8), ('i', 9), ('j', 10), ('k', 11), ('l', 12), ('m', 13), ('n', 14), ('o', 15), ('p', 16), ('q', 17), ('r', 18), ('s', 19), ('t', 20), ('u', 21), ('v', 22), ('w', 23), ('x', 24), ('y', 25), ('z', 26)]

这是我的代码:

在此处输入图像描述

标签: pythonlistnestedtuples

解决方案


您可以将您list的 of tuples 转换为 a dict,并sum与生成器表达式和str.lower(以允许大写字符)一起使用来对字符串中所有字符的数值求和:

string = 'Robert'

list_c_a = [('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5), ('f', 6), ('g', 7), ('h', 8), ('i', 9), ('j', 10), ('k', 11), ('l', 12), ('m', 13), ('n', 14), ('o', 15), ('p', 16), ('q', 17), ('r', 18), ('s', 19), ('t', 20), ('u', 21), ('v', 22), ('w', 23), ('x', 24), ('y', 25), ('z', 26)]

dict_c_a = dict(list_c_a)

num = sum(dict_c_a[c] for c in string.lower())

print(num)

输出:

78

推荐阅读