如何从Python字典中打印特定项的列表?

-3 投票
2 回答
48 浏览
提问于 2025-04-14 15:27

我想从一个叫做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"))

撰写回答