在Python中为字母表赋值

wvt8vs2t  于 2022-12-05  发布在  Python
关注(0)|答案(3)|浏览(197)

我想按如下方式分配字母表:
小写项目a-z的值为1-26大写项目A-Z的值为27-52
实现这一点的最短方法是什么
[a,B,h,R]预期输出:[一,二十八,八,四十四]
我们如何在Python中实现这一点
谢谢你

wd2eg0qa

wd2eg0qa1#

python string模块非常适合这一点。

from string import ascii_letters
print([ascii_letters.index(letter) + 1 for letter in ["a", "B", "h", "R"]])
u0njafvf

u0njafvf2#

我想我认识一个代码降临的问题!我开发了字母表得分Map如下:

import string
from collections import OrderedDict
lower_priorities = OrderedDict(zip(string.ascii_lowercase, range(1,27)))
upper_priorities = OrderedDict(zip(string.ascii_uppercase, range(27,53)))

检查is是大写还是小写,然后将其排序到正确的字典中,然后通过您感兴趣的字母值调用字典。否则,将两个字典组合起来,只查询组合后的字典,即lower_priorities["a"]将返回1。循环遍历数组并获得输出。不能保证它是最短的,但我可以说它是有效的!

nqwrtyyt

nqwrtyyt3#

这是一种可以实现所需内容的方法:

print([ord(item) - 38 if ord(item) < 97 else ord(item) - 96 for item in ['a','B','h','R']])

将每个项转换为int值并查找它们的位置(大写字母在小写字母之前)
https://appdividend.com/2022/06/15/how-to-convert-python-char-to-int/

相关问题