Как распечатать несколько значений из вложенных словарей? - PullRequest
0 голосов
/ 29 марта 2019

Один из моих домашних заданий - печатать в одну строку, используя вложенный словарь. Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 29 марта 2019

Вы можете использовать несколько аргументов 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=" ")
0 голосов
/ 29 марта 2019
for employee in employees:
    if employee["title"] == "Mr":
        print(employee["employee_id"])
        print(employee["lastname"], employee["firstname"])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...