在python中使用列表中的数字访问字典中的项

在python中使用列表中的数字访问字典中的项,python,list,dictionary,Python,List,Dictionary,我有以下项目: my_list = [18, 15, 22, 22, 25, 10, 7, 25, 2, 22, 14, 10, 27] 在一个列表中,我想通过使用“for循环”来访问字典中的项目,然后我会将这些项目附加到一个新列表中。我的字典是这样的: my_dict = {1:"A", 2:"B", 3:"C" ... 26:"Z", 27:"_"} for i in my_list: my_newlist = [] letters = number_value[keys

我有以下项目:

my_list = [18, 15, 22, 22, 25, 10, 7, 25, 2, 22, 14, 10, 27]
在一个列表中,我想通过使用“for循环”来访问字典中的项目,然后我会将这些项目附加到一个新列表中。我的字典是这样的:

my_dict = {1:"A", 2:"B", 3:"C" ... 26:"Z", 27:"_"}
for i in my_list:
    my_newlist = []
    letters = number_value[keys.index(i)]
    letters.append(my_newlist)
result = [my_dict[i] for i in my_list if i in my_dict.keys()]
print(result)
我该怎么做呢?我尝试过这样的循环:

my_dict = {1:"A", 2:"B", 3:"C" ... 26:"Z", 27:"_"}
for i in my_list:
    my_newlist = []
    letters = number_value[keys.index(i)]
    letters.append(my_newlist)
result = [my_dict[i] for i in my_list if i in my_dict.keys()]
print(result)
然而,我在这样做时会犯错误。干杯

在我的代码的另一个区域中,我有反向功能,在该功能中,我通过以下方式搜索项目来获取密钥:

for i in my_list:
    third_list = []
    num_val = keys[values.index(i)] + key_shift
    third_list.append(num_val)
    print(num_val)
它被用于替换密码。上面的示例起作用,它在字典中查找对应于“A”的键,并将键存储在列表中。

您可以简单地使用A,在数字列表中隐式循环
my_list
并使用相应的数字作为键从dict
my_dict
中检索值:

my_dict = {i: chr(i+64) for i in range(27)}
my_list = [1, 5, 19]

result = [my_dict[i] for i in my_list]
print(result)
屈服

['A', 'E', 'S']
请确保检查是否存在
KeyError
,因为您的列表
my_list
可能包含您的dict
my_dict
中不存在的数字。如果要避免显式异常处理(并以静默方式忽略缺少的键),可以执行以下操作:

my_dict = {1:"A", 2:"B", 3:"C" ... 26:"Z", 27:"_"}
for i in my_list:
    my_newlist = []
    letters = number_value[keys.index(i)]
    letters.append(my_newlist)
result = [my_dict[i] for i in my_list if i in my_dict.keys()]
print(result)
您只需使用一个函数,隐式循环遍历您的数字列表
my_list
,并使用相应的数字作为键从您的dict
my_dict
中检索值:

my_dict = {i: chr(i+64) for i in range(27)}
my_list = [1, 5, 19]

result = [my_dict[i] for i in my_list]
print(result)
屈服

['A', 'E', 'S']
请确保检查是否存在
KeyError
,因为您的列表
my_list
可能包含您的dict
my_dict
中不存在的数字。如果要避免显式异常处理(并以静默方式忽略缺少的键),可以执行以下操作:

my_dict = {1:"A", 2:"B", 3:"C" ... 26:"Z", 27:"_"}
for i in my_list:
    my_newlist = []
    letters = number_value[keys.index(i)]
    letters.append(my_newlist)
result = [my_dict[i] for i in my_list if i in my_dict.keys()]
print(result)

您截取的代码似乎不完整,因为您正在使用变量
number\u values
,该变量未在示例中定义。 编辑:您仍然在使用未在您提供的代码中定义的变量,因此我无法重现您的错误。此外,您每次都会覆盖您的
第三个列表
我的新列表

我假设
my_list
中的键也存在于
my_dict
中:如果没有按照@jbndlr告诉您的那样做,请检查
KeyError

my_list = [1, 2, 3, 26, 27]

my_dict = {1:"A", 2:"B", 3:"C" , 26:"Z", 27:"_"}

my_newlist = []
for i in my_list:
    letters = my_dict[i]
    my_newlist.append(letters)

print my_newlist

这就产生了这些项目的价值。如果您正在查找其他内容,请告诉我,以便我可以调整答案,因为您使用的变量
number\u values
在您的示例中未定义,因此您所剪下的代码似乎不完整。 编辑:您仍然在使用未在您提供的代码中定义的变量,因此我无法重现您的错误。此外,您每次都会覆盖您的
第三个列表
我的新列表

我假设
my_list
中的键也存在于
my_dict
中:如果没有按照@jbndlr告诉您的那样做,请检查
KeyError

my_list = [1, 2, 3, 26, 27]

my_dict = {1:"A", 2:"B", 3:"C" , 26:"Z", 27:"_"}

my_newlist = []
for i in my_list:
    letters = my_dict[i]
    my_newlist.append(letters)

print my_newlist

这就产生了这些项目的价值。如果您正在寻找其他内容,请告诉我,以便我可以调整答案

其他人已经指出了您的代码示例中的不一致之处,因此愉快地忽略这些:)


其他人指出了代码示例中的不一致之处,因此轻率地忽略了这些:)


其中定义了
number\u值
?。。你为什么要做键索引(i)?“你希望在信中看到什么结果?”超级赛扬修正。很抱歉造成混淆今天,我将一个合并到此问题中的解决方案移动到了一个答案框中,但看起来它可能会因为是一个仅链接的答案而在审阅队列中被拒绝。它是这样写的:“加密机正在工作。你可以找到一个版本”。OP,如果您想在没有链接的答案中对此进行扩展,这可能对将来的读者有用。
number\u value
键定义在哪里?。。你为什么要做键索引(i)
?“你希望在信中看到什么结果?”超级赛扬修正。很抱歉造成混淆今天,我将一个合并到此问题中的解决方案移动到了一个答案框中,但看起来它可能会因为是一个仅链接的答案而在审阅队列中被拒绝。它是这样写的:“加密机正在工作。你可以找到一个版本”。如果你想在一个没有链接的答案中对此进行扩展,这对未来的读者可能会很有用。是的,这是我正在编写的代码的摘录。我必须简化变量名,因为我的密码代码中有很多变量名。代码完成后,我会将其上载到我的GitHub。干杯是的,这是我正在编写的代码的摘录。我必须简化变量名,因为我的密码代码中有很多变量名。代码完成后,我会将其上载到我的GitHub。干杯