Маючи список, напишіть програму Python для перетворення даного списку в словник таким чином, щоб усі непарні елементи мали ключ, а парні числові елементи мали значення. Оскільки Python словник є невпорядкованим, вихід може бути в будь-якому порядку.
приклад
Input : ['a', 1, 'b', 2, 'c', 3] Output: {'a': 1, 'b': 2, 'c': 3} Explaination : In the input we have a list of element which then is conerted into key value pairs of dictonary in the output> Перетворення списку на словник Python
Нижче наведено методи, які ми розглянемо в цій статті.
- Використовуючи a петля
- Використання dict Розуміння
- Використання zip() метод
- Використання Лямбда-функція
- Використання Розуміння списку і Нарізка
- Використання Itertools
Перетворення списку на словник за допомогою циклу
Цей метод працює шляхом ініціалізації пустого словник а потім перебираючи список на кроці 2. У кожній ітерації пара ключ-значення додається до словника, використовуючи поточний елемент як ключ і наступний елемент як значення. Нарешті словник повертається як результат.
Python3
def> convert(lst):> >res_dict>=> {}> >for> i>in> range>(>0>,>len>(lst),>2>):> >res_dict[lst[i]]>=> lst[i>+> 1>]> >return> res_dict> lst>=> [>'a'>,>1>,>'b'>,>2>,>'c'>,>3>]> print>(convert(lst))> |
>
>
Вихід
{'a': 1, 'b': 2, 'c': 3}> Часова складність: O(n), де n - довжина вхідного списку.
Допоміжні приміщення: O(n), де n - довжина вхідного списку.
Список розмов у словнику використання dict Comprehension
Щоб перетворити список на словник, ми можемо використовувати розуміння дикту і створити пару ключ:значення з послідовних елементів. Нарешті, введіть регістр списку в дикт типу.
Python3
отримати довжину масиву в c
який розмір екрана мого монітора
def> Convert(lst):> >res_dct>=> {lst[i]: lst[i>+> 1>]>for> i>in> range>(>0>,>len>(lst),>2>)}> >return> res_dct> > # Driver code> lst>=> [>'a'>,>1>,>'b'>,>2>,>'c'>,>3>]> print>(Convert(lst))> |
>
>Вихід
{'a': 1, 'b': 2, 'c': 3}> Часова складність: O(n), де n - довжина вхідного списку.
Допоміжні приміщення: O(n), де n - довжина вхідного списку.
Перетворення списку на словник в співати zip() метод
Спочатку створіть ітератор та ініціалізуйте його змінною «it». Потім використовуйте zip метод , щоб стиснути ключі та значення разом. Нарешті наберіть його дикт типу.
Python3
def> Convert(a):> >it>=> iter>(a)> >res_dct>=> dict>(>zip>(it, it))> >return> res_dct> # Driver code> lst>=> [>'a'>,>1>,>'b'>,>2>,>'c'>,>3>]> print>(Convert(lst))> |
>
>Вихід
{'a': 1, 'b': 2, 'c': 3}> Часова складність: O(n), де n - довжина вхідного списку a.
Допоміжні приміщення: O(n), де n - довжина вхідного списку a.
Список розмов у словнику за допомогою функції лямбда
Спочатку створіть масив ключів і значень за допомогою нарізки масиву. Потім використовуйте метод карти з лямбда для формування масиву кортежу зі значенням ключа paris. Нарешті приведіть його до типу dict.
Python
def> Convert(lst):> >res_dct>=> map>(>lambda> i: (lst[i], lst[i>+>1>]),>range>(>len>(lst)>->1>)[::>2>])> >return> dict>(res_dct)> # Driver code> lst>=> [>'a'>,>1>,>'b'>,>2>,>'c'>,>3>]> print>(Convert(lst))> |
>
>Вихід
{'a': 1, 'c': 3, 'b': 2}> Часова складність: O(n), де n – кількість пар ключ-значення в словнику.
Допоміжні приміщення: O(n), щоб зберегти ключі та значення в словнику.
Мадхурі сказав
Перетворення списку на словник за допомогою List Comprehension і Slicing
Скибочка список введення, щоб отримати список ключів за допомогою lst[::2]. Це займе кожен другий елемент, починаючи з першого елемента списку. Розріжте вхідний список, щоб отримати список значень за допомогою lst[1::2]. Це займе кожен другий елемент, починаючи з другого елемента списку. Створіть словник за допомогою a розуміння словника який перебирає індекси списку ключів і поєднує кожен ключ із відповідним значенням зі списку значень.
Повернути отриманий словник.
Python3
def> convert(lst):> >keys>=> lst[::>2>]># slice the list to get keys> >values>=> lst[>1>::>2>]># slice the list to get values> >res_dict>=> {keys[i]: values[i]>for> i>in> range>(>len>(keys))}> >return> res_dict> lst>=> [>'a'>,>1>,>'b'>,>2>,>'c'>,>3>]> print>(convert(lst))># {'a': 1, 'b': 2, 'c': 3}> |
>
>Вихід
{'a': 1, 'b': 2, 'c': 3}> Часова складність: O(n)
Допоміжні приміщення: O(n).
оператор java
Перетворіть список на словник за допомогою Itertools
Імпортуйте itertools модуль .Використовувати zip_longest() функція для створення списку кортежів із вихідного списку. Ця функція згрупує елементи в пари, навіть якщо довжина списку непарна. Використовуйте розуміння словника, щоб створити словник зі списку кортежів. Поверніть словник.
Нижче наведено реалізацію вищезазначеного підходу:
Python3
import> itertools> def> convert(lst):> >pairs>=> itertools.zip_longest(>*>[>iter>(lst)]>*> 2>, fillvalue>=>None>)> >dct>=> {key: value>for> key, value>in> pairs}> >return> dct> lst>=> [>'a'>,>1>,>'b'>,>2>,>'c'>,>3>]> print>(convert(lst))> |
>
>Вихід
{'a': 1, 'b': 2, 'c': 3}> Часова складність: O(n)
Допоміжні приміщення: O(n) (для зберігання списку кортежів)