2017-08-31 62 views
-7

我很喜欢。我试图从A分配值到Z. 这非常长。在python中为字符A-Z赋值

A= 97 
    B= 98 
    C= 99 
    D= 100 
    ... 
    Z= 122 

什么是最好的办法呢?

+1

不会创建像这样的变量。为什么要这么做? –

+2

你不需要分配。有'ord('A'.lower())' –

+1

你可以使用'ord(str)'函数 –

回答

2

你可以那样做:

import string 

alpha_dict = {k: ord(k) for k in string.ascii_lowercase} 
print(alpha_dict) # {'r': 114, 'l': 108, 'z': 122, ...} 

和访问像alpha_dict['a']的变量。


请注意,您在您的示例有值对应于小写字母,但你与大写命名变量。如果你真的想大写,而不是循环通过ascii_lowercase循环结束ascii_uppercase

0

而不是硬编码每个字母你可以使用ord('letter')。例如,ord('a')将返回号码97,其代表ASCII码为a

编辑:

我用的Ev. Kounis的代码生成字典,因为我的错了。如果有任何问题,我可以删除它。

import string 

alpha_dict = {k: ord(k) for k in string.ascii_uppercase} 

'''Iterates in keys of alpha_dict, turning the key to lowercase, removes 
the old key and replaces it with the new lowercase one''' 
for key in alpha_dict: 
    lower = key.lower() 
    alpha_dict[lower] = alpha_dict.pop(key) 

print(alpha_dict) 
+0

对不起,我的问题不清楚。我想在'A'中输入'a'的ASCII值。有什么办法可以做到吗? –

+0

@ShikhaNepal检查我的编辑,我认为它符合你的需求。 – 542