Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
-12 / 3 / 0
Регистрация: 02.04.2012
Сообщений: 347
1

Инвертировать список или "как работает map()"?

11.08.2016, 14:36. Показов 2686. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Люди, здравствуйте.

Только сегодня начал изучать питон (как питон, а не как разновидность си). Со всеми его лямбда-юзающими функциями.
И встала задача, которую я не понимаю, как решить.

Задача: есть список. Что-то вроде ["one", "two", "thee"]. Надо его инвертировать в словарь: {"one":1, "two":2, "three":3}.

Сделал это с горем пополам через
Python
1
res = dict((y,x) for x,y in enumerate(mylist))
А map() не работает. Причем
1) не знаю, как написать через мап
2) даже простой код print(map(lambda x: x, mylist)) принтит не тот же список, а мап-объект

Вот, прошу вас рассказать, как решить эту задачу.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.08.2016, 14:36
Ответы с готовыми решениями:

Инвертировать список
Помогите дописать кусок кода, для инвертирования списка, т.е я добавляю в файл "Список.txt"...

Инвертировать список
Задача.Написать программу, яка переварачивает список Р. Для решения задачи необходимо использовать...

Инвертировать список
Помогите пожалуйста! нужно инвертировать список кроме второго элемента с lisp у меня вообще плохо

инвертировать список
здравствуйте, помогите пожалуйста решить следующие задания: нужно инвертировать список начиная с...

5
563 / 303 / 189
Регистрация: 20.05.2016
Сообщений: 592
11.08.2016, 15:38 2
Лучший ответ Сообщение было отмечено Vhodnoylogin как решение

Решение

В данном случае в map нет нужды, ваш код вполне себе ничего, map'ом будет страшней
Python
1
d = dict(map(lambda x : (x[1], x[0]), enumerate(mylist)))
Можно так
Python
1
d = dict(zip(mylist, range(len(mylist))))
и т.д.

Цитата Сообщение от Vhodnoylogin Посмотреть сообщение
2) даже простой код print(map(lambda x: x, mylist)) принтит не тот же список, а мап-объект
Надобно распаковкой
Python
1
print(*map(lambda x: x, mylist))
или обернуть во что-нибудь типа list
Python
1
print(list(map(lambda x: x, mylist)))
1
Эксперт Python
4632 / 2050 / 361
Регистрация: 17.03.2012
Сообщений: 10,133
Записей в блоге: 6
11.08.2016, 15:58 3
map нинужен. Да, почему вы назвали эту операцию "инвертировать"?
Можно так:
Python
1
res = {k:i+1 for i, k in enumerate(mylist)}
1
-12 / 3 / 0
Регистрация: 02.04.2012
Сообщений: 347
11.08.2016, 16:06  [ТС] 4
Цитата Сообщение от dondublon Посмотреть сообщение
почему вы назвали эту операцию "инвертировать"
потому что индексы стали значениями, а значения - индексами.
0
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
13.08.2016, 10:49 5
Python
dict(map(reversed, enumerate(my_list, 1)))
2
-12 / 3 / 0
Регистрация: 02.04.2012
Сообщений: 347
14.08.2016, 00:59  [ТС] 6
Somebody, тоже неплохое решение. Сегодня я узнал о Реверсе()
0
14.08.2016, 00:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.08.2016, 00:59
Помогаю со студенческими работами здесь

Инвертировать односвязный список
Как инвертировать односвязный список с помощью только одного указателя? Пробую..но не...

Инвертировать линейный список
Инвертировать список, т.е. в заданном списке переставить элементы, чтобы они следовали в порядке,...

Инвертировать односвязный список
Инвертирование односвязного списка вот программа по инвертированию списка , но почему-то она не...

Инвертировать однонаправленный список
Стараюсь освоить однонаправленные списки и никак, а преподаватель требует, друг помог с задачей на...

Создать список из элементов пересечения двух список, используя map и lambda
Не могу понять как вписать тут map и lambda, помогите пожалуйста

image map или как это?
Вот есть группа тегов с которыми можно сделать несколько ссылок на одной картинке прописывая...

Контейнер map, как работает в задаче
Всем привет, не могу понять решение задачи, вот само условие(решение в конце): Имеется база...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru