Я создавал приложение для управления пользователями на 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 — год, цвет, двигатель».