如何从Python字典中打印特定项的列表?
我想从一个叫做app_locate的字典中,只打印出"s"和"t"这两个值,而我用的输入列表是['s', 't'],但是我却得到了整个app_locate的列表。
user_input = 'st'
input_list = list(user_input)
app_locate = {
's' : r'C:\Program Files (x86)\Steam\steam.exe',
'd' : r'C:\Users\User\AppData\Local\Discord\app-1.0.9036\Discord.exe',
't' : r'C:\Users\User\AppData\Roaming\Telegram Desktop\Telegram.exe',
'f' : r'C:\Program Files\Mozilla Firefox\firefox.exe',
}
for input_list in app_locate:
print(app_locate[input_list])
我不太确定我哪里做错了。
我对Python还比较陌生,抱歉!
谢谢你的帮助!
2 个回答
-1
看起来你是在遍历app_locate
字典里的键,而不是在遍历input_list
里的内容。你需要遍历input_list
,然后检查每个字符是否在app_locate
字典里。下面是你代码的修正版本:
user_input = 'st'
input_list = list(user_input)
app_locate = {
's' : r'C:\Program Files (x86)\Steam\steam.exe',
'd' : r'C:\Users\User\AppData\Local\Discord\app-1.0.9036\Discord.exe',
't' : r'C:\Users\User\AppData\Roaming\Telegram Desktop\Telegram.exe',
'f' : r'C:\Program Files\Mozilla Firefox\firefox.exe',
}
for char in input_list:
if char in app_locate:
print(app_locate[char])
这段代码会逐个检查input_list
里的每个字符,看看它是否在app_locate
字典的键里。如果找到了,就会打印出对应的值。这样的话,只有和's'和't'相关的值会被打印出来。
2
你不需要把用户输入的内容转换成列表,因为你可以直接像下面这样遍历字符串:
user_input = 'st'
app_locate = {
's' : r'C:\Program Files (x86)\Steam\steam.exe',
'd' : r'C:\Users\User\AppData\Local\Discord\app-1.0.9036\Discord.exe',
't' : r'C:\Users\User\AppData\Roaming\Telegram Desktop\Telegram.exe',
'f' : r'C:\Program Files\Mozilla Firefox\firefox.exe',
}
for key in user_input:
print(app_locate.get(key, f"Key {key} not found"))