Я создавал приложение для управления пользователями на Python. Мне нужен был способ хранения пользовательской информации, содержащей данные пользователя, и для этого я использовал словарь. Я использовал метод цикла for для доступа к пользователю с его информацией в виде нескольких значений.
В Python перебор словаря с несколькими значениями означает, что словарь содержит ключ с несколькими значениями. Вам нужно перебрать словарь и получить доступ к ключу с несколькими значениями.
Позвольте мне показать вам, как выглядит словарь с несколькими значениями.
student_marks = { "Sam": [90, 85, 75], "Quill": [80, 95, 88], "Kat": [70, 82, 92] }
Посмотрите на приведенный выше код. Словарь Student_marks содержит имя ученика и список его оценок по различным предметам.
Итак, используя словарь аналогичного типа, вы научитесь перебирать его и получать доступ к нескольким значениям, используя разные методы.
С использованием цикла For
Вы можете использовать цикл for для перебора словаря с несколькими значениями и выполнения над ним какой-либо операции.
Давайте посмотрим, как это сделать, на примере. Предположим, у вас есть словарь с именем «employee_skills», который содержит имя сотрудника в качестве ключа и список его навыков в виде списка значений, как показано в коде ниже.
employee_skills = { 'James': ['Python', 'JavaScript'], 'Jimmy': ['Java', 'C++', 'C#'] }
Как показано в коде ниже, вы можете использовать цикл for для перебора сотрудников_skills и доступа к имени сотрудника с несколькими значениями.
for employee_name, skills in employee_skills.items(): print(f"{employee_name}: {', '.join(skills)}")
Посмотрите на результат. Цикл for обращается к каждому сотруднику и его навыкам (которые имеют несколько значений).
Давайте разберемся с частью кода. Во-первых, словарь с именем «employee_skills» содержит имя сотрудника в качестве ключа и его навыки в виде нескольких значений для этого конкретного ключа.
После этого выполните итерацию по словарю, используя цикл «для employee_name, навыки в employee_skills.items():», где функция items() вызывается в словаре, чтобы вернуть пару ключ-значение в виде кортежа.
Затем используйте форматирование строки «f», чтобы напечатать имя сотрудника, и функцию join(), чтобы привязать навыки пользователя к его имени.
В результате вы можете увидеть перебор словаря с несколькими значениями, а затем распечатать каждого сотрудника с его многочисленными навыками, например «Джеймс: Python, JavaScript, Джимми: Java, C++, C#».
С индексом
Вы также можете перебирать словарь с несколькими значениями на основе значения индекса. Опять же, вам нужно будет использовать цикл for, но для доступа к элементам словаря с помощью индекса вы будете использовать функцию enumerate().
Но, возможно, вы не знаете о функции enumerate(), в противном случае функция enumerate() принимает итерируемый объект, например список, добавляет к нему счетчик и возвращает объект перечисления. Вы можете использовать этот перечисляемый объект в цикле for, например список, словарь и т. д., для перебора по нему.
Ниже приведен синтаксис использования функции enumerate().
enumerate(iterable, start=0)
Где:
- iterable: в Python итерируемые объекты похожи на кортежи, списки, строки или словари.
- start: используется для указания индекса счетчика внутри объекта перечисления.
Например, повторно возьмите словарь employee_skills и используйте цикл for для перебора и доступа к ключу с несколькими значениями с индексом.
employee_skills = { 'James': ['Python', 'JavaScript'], 'Jimmy': ['Java', 'C++', 'C#'] } for index,(key, value) in enumerate(employee_skills.items()): print(f"Index: {index}, Key: {key}, Value: {value}")
Посмотрите на выходные данные с именем и навыками сотрудника. Индекс также включается как 0 для первой пары «ключ-значение» и 1 для второй пары «ключ-значение» в списке.
Давайте разберемся с частью кода или индексом (ключ, значение) в enumerate (employee_skills.items()): здесь employee_skills.items заключены в функцию enumerate() для добавления индекса.
employee_skill.items() возвращает пару ключей словаря, которая затем передается в функцию enumerate() с помощью enumerate (employee_skills.items()).
Объект перечисления содержит три вещи: счетчик, который считается индексом, ключ и значение.
Наконец, распечатка доступного индекса, ключа и значения с помощью print(f”Index: {index}, Key: {key}, Value: {value}”). В результате Индекс: 0, Ключ: Джеймс, Значение: [‘Python’, ‘JavaScript’] Индекс: 1, Ключ: Джимми, Значение: [‘Java’, ‘C++’, ‘C#’].
С использованием понимания словаря
Понимание словаря аналогично пониманию списка, позволяя динамически генерировать словарь с помощью цикла с фигурными скобками {}.
Например, предположим, что у вас есть словарь с именем «car_details», где ключи — это модели карт, а значения — это сведения об автомобиле, такие как цвет, тип двигателя и год, как показано ниже.
car_details = { "Honda Civic": { "year": 2023, "color": "red", "engine": "1.5L Turbo" }, "Toyota Corolla": { "year": 2022, "color": "blue", "engine": "1.8L Hybrid" }, "Tesla Model 3": { "year": 2021, "color": "black", "engine": "Electric" } }
Теперь, чтобы перебрать словарь car_details, содержащий ключ с несколькими значениями, вы можете использовать понимание словаря, как показано в коде ниже.
{print(f"The currency of {key} is {', '.join(values)}.") for key, values in car_details.items()}
Посмотрите на выходные данные, перебирая словарь car_details, содержащий ключи с несколькими значениями, используя понимание словаря.
В результате «валюта Honda Civic — это год, цвет, двигатель». Валюта Toyota Corolla — год, цвет, двигатель. Валюта Tesla Model 3 — год, цвет, двигатель».