我想按如下方式分配字母表:小写项目a-z的值为1-26大写项目A-Z的值为27-52实现这一点的最短方法是什么[a,B,h,R]预期输出:[一,二十八,八,四十四]我们如何在Python中实现这一点谢谢你
wd2eg0qa1#
python string模块非常适合这一点。
from string import ascii_letters print([ascii_letters.index(letter) + 1 for letter in ["a", "B", "h", "R"]])
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。循环遍历数组并获得输出。不能保证它是最短的,但我可以说它是有效的!
lower_priorities["a"]
1
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/
3条答案
按热度按时间wd2eg0qa1#
python string模块非常适合这一点。
u0njafvf2#
我想我认识一个代码降临的问题!我开发了字母表得分Map如下:
检查is是大写还是小写,然后将其排序到正确的字典中,然后通过您感兴趣的字母值调用字典。否则,将两个字典组合起来,只查询组合后的字典,即
lower_priorities["a"]
将返回1
。循环遍历数组并获得输出。不能保证它是最短的,但我可以说它是有效的!nqwrtyyt3#
这是一种可以实现所需内容的方法:
将每个项转换为int值并查找它们的位置(大写字母在小写字母之前)
https://appdividend.com/2022/06/15/how-to-convert-python-char-to-int/