【问题标题】:How to print multiple values from nested dictionaries?如何从嵌套字典中打印多个值?
【发布时间】:2019-08-19 23:45:45
【问题描述】:

我的一个作业问题是使用嵌套字典在一行上打印。我该怎么做?

【问题讨论】:

  • 我试过 print(employees[0]["employee_id"] 和 print(employees[0, 1]["employee_id"]
  • 您需要使用 for 循环遍历员工。
  • 现在你把我弄糊涂了。您是否在问如何在一行上打印employee_id,在另一行上打印他们的姓名,格式为姓氏,名字。不能在一行上打印所有的employye_id。

标签: python dictionary nested


【解决方案1】:

您可以使用print 的多个参数将它们用空格分隔(可以使用sep 参数更改):

print(employees[0]["employee_id"], employees[1]["employee_id"])

但是,如果您想打印出所有男性员工的身份证,您有几个不同的选择:

  1. for循环:

    for employee in employees:
        if employee["title"] == "Mr":
            print(employee["employee_id"], end=" ")
    
  2. 参数解包:

    male_employees = [employee["employee_id"] for employee in employees if employee["title"] == "Mr"]
    print(*male_employees)
    
  3. str.join

    male_employees = [employee["employee_id"] for employee in employees if employee["title"] == "Mr"]
    print(" ".join(male_employees))
    

特别是对于家庭作业问题,使用for 循环的第一个选项是最直观的。

编辑:

要打印名称,您可以使用格式字符串:

for employee in employees:
    if employee["title"] == "Mr":
        print("{0}, {1}".format(employee["lastname"], employee["firstname"]), end=" ")

如果你想玩得更开心,这是一个选择:

for employee in employees:
    if employee["title"] == "Mr":
        print("{lastname}, {firstname}".format(**employee), end=" ")

【讨论】:

  • 非常感谢!!对于循环,我可以在同一行显示“姓氏”和“名字”吗?
  • @Tess 你所说的绝对是可能的,但你能否用所需的输出编辑你的问题以使输出更清晰?
  • 哎呀,对不起,现在可以了!抱歉,我对编码和 python 很陌生
【解决方案2】:
for employee in employees:
    if employee["title"] == "Mr":
        print(employee["employee_id"])
        print(employee["lastname"], employee["firstname"])

【讨论】:

  • 抱歉,我在代码中添加了现在还有另外两名员工,但问题只询问男性(前 2 名)员工
猜你喜欢
  • 2021-06-01
  • 1970-01-01
  • 2022-12-03
  • 2021-12-06
  • 1970-01-01
  • 1970-01-01
  • 2021-12-11
  • 1970-01-01
相关资源
最近更新 更多