我有一个字母'字母'包含字母表中的所有字母以及与这些字母对应的整数列表(0-25)。
前:
num_list = [5,3,1] would translate into letter_list = ['f','d','b']
我目前可以翻译:
letter_list = [alphabet[a] for a in num_list]
但是,我想使用dict来做同样的事情,检索字母'来自dict的密钥与'数字'值。
alpha_dict = {'a':0,'b':1,'c':2}... etc
如何更改语句以执行此操作?
答案 0 :(得分:4)
只需遍历您的alphabet
字符串,并使用字典理解来创建字典
# Use a dictionary comprehension to create your dictionary
alpha_dict = {letter:idx for idx, letter in enumerate(alphabet)}
然后,您可以使用alpha_dict[letter]
将相应的号码检索到任何字母,将letter
更改为您想要的任何字母。
然后,如果你想要一个与你的num_list
对应的字母列表,你可以这样做:
[letter for letter, num in alpha_dict.items() if num in num_list]
基本上说:对于我字典中的每个键值对,如果值(即数字)在num_list
这会为您提供的['b', 'd', 'f']
num_list
答案 1 :(得分:2)
您也可以反转alpha_dict
来执行此操作:
>>> import string
>>> alpha_dict = dict(enumerate(string.ascii_lowercase))
>>> alpha_dict
{0: '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'}
>>> numbers = [5, 3, 1]
>>> [alpha_dict[x] for x in numbers]
['f', 'd', 'b']
这样你的词典就会将数字映射到字母,而不是字母映射到数字。
答案 2 :(得分:0)
你可以建立一个字母/数字的字典:
import string
alpha_dict = {
i: string.ascii_lowercase[i]
for i in list(range(0, len(string.ascii_lowercase)))
}
num_list = [5,3,1]
letter_list = [alpha_dict.get(a) for a in num_list]
然而,只使用这样的列表会更容易:
import string
num_list = [5,3,1]
letter_list = [string.ascii_lowercase[a] for a in num_list]
答案 3 :(得分:0)
我认为 - 就像其他答案一样 - 应该使用一个列表(利用方便的索引调用)但不应该使用字典,句点。所以......
from string import ascii_lowercase # ONLY import ascii_lowercase
numList = [numbers, in, your, list] # like you said in your question
translation = "".join ([ascii_lowercase[num] for num in numList])
答案 4 :(得分:0)
letters = [chr(i) for i in range(97, 123)]
alph_index = dict(zip(letters, range(26)))
print(">> letters=", letters)
print(">> alph_index=", alph_index)
Output:
>> letters= ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
>> alph_index= {'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e': 4, 'f': 5, 'g': 6, 'h': 7, 'i': 8, 'j': 9, 'k': 10, 'l': 11, 'm': 12, 'n': 13, 'o': 14, 'p': 15, 'q': 16, 'r': 17, 's': 18, 't': 19, 'u': 20, 'v': 21, 'w': 22, 'x': 23, 'y': 24, 'z': 25}