python - 在 Python 中访问嵌套的字典项

标签 python dictionary python-3.3

我正在尝试使用嵌套字典中的项目格式化字符串(如下)

    people = {
        'Alice': {
            'phone': '2341',
            'addr': '87 Eastlake Court'
            },

        'Beth': {
            'phone': '9102',
            'addr': '563 Hartford Drive'
            },

        'Randy': {
            'phone': '4563',
            'addr': '93 SW 43rd'
            }

        }

从上面的(简单的)字典中,我想格式化一个字符串来打印出 Randy 的电话分机。

我可以使用以下方式访问他的所有详细信息:

    print("Randy's phone # is %(Randy)s" % people)

但我不确定如何深入字典以从字典中挑出电话号码。

顺便说一句,我正在使用 Python 3.3。

最佳答案

使用 new string formatting :

print("Randy's phone # is {0[Randy][phone]}".format(people))

print("Randy's phone # is {Randy[phone]}".format(**people))

如果您只使用一个值,则传递整个字典没有意义。

print("Randy's phone # is {}".format(people['Randy']['phone']))

print("Randy's phone # is %s" % people['Randy']['phone'])

也可以。

如果您有很多这样的格式字符串并且不知道它们使用哪些值,并且希望它们能够访问任何值,那么传递 dict 是有意义的。

或者如果您在格式字符串中使用许多值并单独传递它们就太冗长了。

关于python - 在 Python 中访问嵌套的字典项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16173809/

相关文章:

sockets - 在 Python 中创建 WebSocket 客户端

python - 将经过训练的 xgboost 分类器从 AWS s3 上传到 EMR

python - 将二进制转换为十进制整数输出

c# - 字典初始化在 C# 中如何工作?

python - 掌握就地操作的基础知识

python - 如何使 pyserial 环回工作?

python / Selenium : How to set "value" for input when it is not listed in page source?

python - AWS Lambda 函数状态 (zappa)

c++ - 删除类成员映射时在映射析构函数 STL_map.h 中发生崩溃

python - 循环遍历文本文件并尝试创建嵌套字典,但字典仅打印最后一个循环迭代,而不是嵌套在一起的完整循环