python - 使用 Python 使用变量调用字典时遇到问题

标签 python string dictionary

我使用 python 才几个月, 如果我问了一个愚蠢的问题,我很抱歉。我有 使用变量调用字典名称时出现问题。

问题是,如果我使用变量来调用字典&[]运算符, python解释我的代码试图返回字符串中的单个字符 而不是字典列表中的任何内容。

举个例子来说明......假设我 有一个如下所示的字典列表。


USA={'Capital':'Washington',
     'Currency':'USD'}

Japan={'Capital':'Tokyo',
       'Currency':'JPY'}

China={'Capital':'Beijing',
      'Currency':'RMB'}

country=input("Enter USA or JAPAN or China? ")

print(USA["Capital"]+USA["Currency"])  #No problem -> WashingtonUSD
print(Japan["Capital"]+Japan["Currency"])  #No problem -> TokyoJPY
print(China["Capital"]+China["Currency"])  #No problem -> BeijingRMB
print(country["Capital"]+country["Currency"])  #Error -> TypeError: string indices must be integers

在上面的例子中,我理解解释器 需要一个整数,因为它查看该值 “国家”作为字符串而不是字典...... 就像如果我使用日本作为输入来输入国家[2](例如), 它将返回字符“p”。但显然 这不是我的意图。

有什么办法可以解决这个问题吗?

最佳答案

您应该将国家/地区本身放入字典中,键是国家/地区名称。然后您就可以执行 COUNTRIES[country]["Capital"] 等操作

示例:

COUNTRIES = dict(
    USA={'Capital':'Washington',
         'Currency':'USD'},
    Japan={'Capital':'Tokyo',
           'Currency':'JPY'},
    ...
)
country = input("Enter USA or Japan or China? ")
print(COUNTRIES[country]["Capital"])

关于python - 使用 Python 使用变量调用字典时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17460185/

相关文章:

python - 如何在 Python 中初始化不同空列表的字典?

Python - 我不知道如何在这段代码中工作

python - 如何在使用 Selenium 无限滚动的网页中多次滚动

objective-c - 如何从 Cocoa 中的 CFStringTokenizer 获取 token 类型?

xml - Kotlin:格式化字符串

c++ - 将 v8::String 转换为 LPCWSTR?

flutter - 中断异常 '_InternalLinkedHashMap<dynamic, dynamic>' 不是类型 'Map<String, String>' 的子类型

python - 箱线图中箱子的面部图案

python - 通过 Python 和 Selenium 单击 #shadow-root (open) 中的按钮的最佳方法

javascript - 美国 map 插件(JQuery 插件)上的禁用状态