根据Python中的用户输入选择要使用的词典

根据Python中的用户输入选择要使用的词典,python,dictionary,Python,Dictionary,我试图解决一个问题,以便能够教我的GCSE课程一些技能。这是基于货币转换器的想法。我有一个程序,允许我使用字典从单一货币转换,根据您要转换的货币选择汇率 我曾尝试使用多个字典来扩展它,但无法获取代码,以便根据用户输入选择要使用的字典 我的注释代码如下-基本上我想根据用户在第一个while循环中输入的货币选择要使用的词典 GBP={"USD":1.64,"EUR":1.21,"YEN":171.63} USD={"GBP":0.61,"EUR":0.73,"YEN":104.27} EUR={"G

我试图解决一个问题,以便能够教我的GCSE课程一些技能。这是基于货币转换器的想法。我有一个程序,允许我使用字典从单一货币转换,根据您要转换的货币选择汇率

我曾尝试使用多个字典来扩展它,但无法获取代码,以便根据用户输入选择要使用的字典

我的注释代码如下-基本上我想根据用户在第一个while循环中输入的货币选择要使用的词典

GBP={"USD":1.64,"EUR":1.21,"YEN":171.63}
USD={"GBP":0.61,"EUR":0.73,"YEN":104.27}
EUR={"GBP":0.83,"USD":1.36,"YEN":141.79}
currencyList=("GBP","EUR","USD","YEN")
#Sets up the dictonaries of conversion rates and validation list for acceptable currencies

while True:
    rate=input("What currency do you require to convert to?\n")
    if rate in GBP:
        #####This is where I have the issue - this code currently works but only for converting from GBP (using the GBP dictonary),
        #####I want to change the 'GBP' to use whatever dictonary corresponds to the value entered for currency
        #####in the loop above.

不要试图映射到变量名。只需在此处创建另一个关卡,添加包含您的货币的字典:

currencies = {
    'GBP': {"USD":1.64,"EUR":1.21,"YEN":171.63},
    'USD': {"GBP":0.61,"EUR":0.73,"YEN":104.27},
    'EUR': {"GBP":0.83,"USD":1.36,"YEN":141.79},
}
print(list(currencies))
然后,您可以使用字典的键创建可用货币的列表:

currencies = {
    'GBP': {"USD":1.64,"EUR":1.21,"YEN":171.63},
    'USD': {"GBP":0.61,"EUR":0.73,"YEN":104.27},
    'EUR': {"GBP":0.83,"USD":1.36,"YEN":141.79},
}
print(list(currencies))
您可以测试货币是否存在:

if currency in currencies:

选择货币后,使用
货币[currency]
引用嵌套字典。

这是内存消耗中的O(n^2)。拥有一种标准货币并通过它转换一切可能更简单。@凯文:当然,但这是未来的一步。此外,输入映射允许转换为日元,但不允许转换为日元,这可能是一个有效的限制。再次感谢,这正是我所寻找的,但我的新手在字典中搜索字典时没有找到任何结果@Martijin,很好地发现我是作为一个演示来做这件事的,我厌倦了研究和输入所有的汇率@凯文,你能解释一下你所说的标准货币是什么意思吗?@Theregistschool-ictdepartmentmen:设定所有相对于美元的汇率。如果你必须在A和B两种货币之间转换,首先将A转换成美元,然后将美元转换成B。美元是一种标准货币。请不要自我破坏你的帖子。你刚才把我给你的答案都弄得一文不值。您已将文章授权为CC Wiki,以便其他人也可以从中学习。