如何迭代字符串并对于每个字母(如果它在字典中)将该单词附加到 `syr_list` 的末尾

Ana*_*dze 1 python dictionary loops

我有一本名为 to_nato 的字典,如下所示:

to_nato = {'a': 'alfa',
           'b': 'bravo',
           'c': 'charlie',
           'd': 'delta',
           'e': 'echo',
           'f': 'foxtrot',
           'g': 'golf',
           'h': 'hotel',
           'i': 'india'}
Run Code Online (Sandbox Code Playgroud)

我需要编写循环来迭代字符串"stateofny",对于每个字母,如果它在字典中,则将该单词附加到末尾syr_list

我正在尝试这个:

syr_str="stateofny"
syr_list=[]

for letter in syr_str:
    for key, value in zip(to_nato.keys(), to_nato.values()):
                if letter == key:
                   syr_list.append(value) 
print(syr_list)

Run Code Online (Sandbox Code Playgroud)

但它返回空列表。我究竟做错了什么?

Sel*_*cuk 5

您的方法工作正常,它不会返回空列表(假设您的帖子中有拼写错误,并且您的to_nato实际上是一个有效的字典)。话虽如此,这不是你使用字典的方式。字典的唯一目的是使随机访问元素变得更容易,而无需使用for循环和if语句。

这是您的代码的更好版本:

for letter in syr_str:
    if letter in to_nato:
        syr_list.append(to_nato[letter])
Run Code Online (Sandbox Code Playgroud)

或者,使用列表理解:

syr_list = [to_nato[letter] for letter in syr_str if letter in to_nato]
Run Code Online (Sandbox Code Playgroud)