В процессе работы над проектом на Python я столкнулся с необходимостью хранения данных в двух списках. Однако такой способ хранения не является эффективным. Мне нужно было преобразовать эти два списка в словарь, но без использования встроенных методов.
Позвольте мне привести пример, чтобы вам было понятнее, в каких ситуациях можно использовать эти сценарии.
Предположим, у меня есть два разных списка, содержащих такие данные:
keys_list = ['Name', 'Age', 'Gender', 'Country'] values_list = ['Scarlett', 28, 'Female', 'United States']
Я хочу преобразовать эти данные в словарь и мне нужен такой тип вывода:
Dictionary: {'Name': 'Scarlett', 'Age': 28, 'Gender': 'Female', 'Country': 'United States'}
- С использованием цикла while
- С использованием цикла for
- С использованием словарного понимания
- Заключение
С использованием цикла while
Давайте рассмотрим, как с помощью цикла while в Python можно преобразовать два списка в словарь, используя пары «ключ — значение».
keys_list = ['Name', 'Age', 'Gender', 'Country'] values_list = ['James', 32, 'Male', 'United States'] emp_data = {} i = 0 while i<len(keys_list): emp_data[keys_list[i]] = values_list[i] i += 1 print(emp_data)
В представленном коде есть два списка: key_list и value_list, которые мы хотим преобразовать в ключи и значения словаря.
Для этого мы используем цикл while. Цикл начинается с индекса 0 и продолжается до тех пор, пока не будет достигнут конец списка key_list. Это можно выразить следующим образом: while i < len(key_list).
Затем мы добавляем элементы списка в словарь, используя следующий синтаксис: emp_data[keys_list[i]] = values_list[i].
С использованием цикла for
Также мы можем воспользоваться циклом for, используя тот же принцип, что и в предыдущем примере. В этом случае для определения индексных позиций элементов списка мы будем применять метод range().
Преимущество цикла for в том, что нам не нужно писать отдельные строки для увеличения значения индекса.
Давайте разберемся в этом на практическом примере:
columns = ['Name', 'Age', 'Gender', 'Country'] emp_data1 = ['James', 32, 'Male', 'United States'] info_dict = {} for i in range(len(columns)): info_dict[columns[i]] = emp_data1[i] print('Keys List:', columns) print('Values List:', emp_data1) print('Dictionary:', info_dict)
В представленном коде у нас есть два списка: columns и emp_data. Наша задача — преобразовать их в словарь, где элементы из списка columns станут ключами, а значения из списка emp_data — значениями.
Для этого мы используем цикл for и инициализируем переменную i в функции range(). Изначально i будет равно 0, так как в начале цикла нет значения, и поэтому по умолчанию i примет значение 0.
Затем мы применяем ту же логику, которую использовали в предыдущем примере, чтобы объединить два списка в пары ключ-значение в словаре на языке Python.
С использованием словарного понимания
Также в Python можно использовать понимание словаря для преобразования двух списков в словарь. Понимание словаря позволяет создать словарь всего в одной строке кода, используя цикл for.
Такой способ создания словаря работает быстрее, чем обычный цикл for.
Давайте посмотрим, как можно преобразовать два списка в словарь.
keys_list = ['Name', 'Age', 'Gender', 'Country'] values_list = ['Scarlett', 28, 'Female', 'United States'] info_dict = {keys_list[i]: values_list[i] for i in range(len(keys_list))} print('Keys List:', keys_list) print('Values List:', values_list) print('Dictionary:', info_dict)
В этом коде мы используем понимание словаря, чтобы преобразовать список в словарь. Это делается так: {keys_list[i]: values_list[i] for i in range(len(keys_list))}.
Сначала будет выполнен цикл for i in range(len(keys_list)). Он инициализирует i равным 0 и будет продолжаться до тех пор, пока i меньше или равно длине списка keys_list.
Затем {keys_list[i]: values_list[i]} — эта строка добавит элементы в словарь.
Заключение
В этой статье о Python вы узнали, как преобразовать два списка в словарь без использования встроенных методов. Мы привели примеры использования циклов while, for и понимания словаря, чтобы продемонстрировать, как это можно сделать без использования готовых функций Python.