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)
但它返回空列表。我究竟做错了什么?
您的方法工作正常,它不会返回空列表(假设您的帖子中有拼写错误,并且您的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)