Как поменять местами ключи и значения в словаре питон
Перейти к содержимому

Как поменять местами ключи и значения в словаре питон

  • автор:

Python-сообщество

[RSS Feed]

  • Начало
  • » Python для новичков
  • » Разбить список строк.

#1 Окт. 8, 2009 11:41:35

jartasa От: Зарегистрирован: 2009-09-20 Сообщения: 78 Репутация: 0 Профиль Отправить e-mail

Разбить список строк.

Спасибо,то что надо.

#2 Окт. 8, 2009 13:12:54

pasaranax От: Зарегистрирован: 2009-06-13 Сообщения: 574 Репутация: 0 Профиль Отправить e-mail

Разбить список строк.

jartasa
Как бы мне надо было из списка в словарь,насколько я помню в списках нет items.

Я подумал, что тебе из словаря надо в список

#3 Окт. 8, 2009 23:01:35

jartasa От: Зарегистрирован: 2009-09-20 Сообщения: 78 Репутация: 0 Профиль Отправить e-mail

Разбить список строк.

Как поменять ключ и значение местами в словаре ?
Или подскажите аналог такой конструкции:
w — некое слово,заменяется если в словаре по ключу(в роли ключа выступает w) есть значение,а как сделать замену наоборот ? Т.е если значение == слово(w),то заменить слово на ключ ?
if self.sy.has_key(w):
w = w.replace(w,self.sy)

Отредактировано (Окт. 8, 2009 23:06:11)

#4 Окт. 8, 2009 23:59:28

pasaranax От: Зарегистрирован: 2009-06-13 Сообщения: 574 Репутация: 0 Профиль Отправить e-mail

Разбить список строк.

jartasa
Как поменять ключ и значение местами в словаре ?

все теми же конструкциями

d = 
d = dict((val, key) for (key, val) in d.iteritems())

#5 Окт. 9, 2009 22:55:52

jartasa От: Зарегистрирован: 2009-09-20 Сообщения: 78 Репутация: 0 Профиль Отправить e-mail

Разбить список строк.

Как объеденить 2 словаря ?

#6 Окт. 10, 2009 09:00:05

PooH От: Зарегистрирован: 2006-12-05 Сообщения: 1948 Репутация: 72 Профиль Отправить e-mail

Разбить список строк.

jartasa
Как объеденить 2 словаря ?

Почитать уже в конце-концов проклятую документацию:
a.update()
updates a with key/value pairs from b, overwriting existing keys, returns None

update() accepts either another mapping object or an iterable of key/value pairs (as a tuple or other iterable of length two). If keyword arguments are specified, the mapping is then is updated with those key/value pairs: “d.update(red=1, blue=2)”. Changed in version 2.4: Allowed the argument to be an iterable of key/value pairs and allowed keyword arguments.

ЗЫ: Извините за резкость, но мне, например, было бы стыдно задавать на форуме вопрос, который решается минутным поиском в официальной документации, кстати и в переводе Откидыча тоже.

Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Отредактировано (Окт. 10, 2009 09:01:51)

Изменение данных в словаре — Python: Cловари и множества

Словарь в Python — изменяемый или мутабельный. Но для добавления новой пары «ключ-значение» не нужны отдельные методы, вроде спискового метода .append — достаточно обычного присваивания:

d = <> # пустой словарь d["a"] = 100 print(d) # => d["b"] = 200 d["a"] = 0 print(d) # => 

Здесь вы можете увидеть, что присваивание значения новому ключу выглядит точно так же, как и присваивание существующему. Именно эту тему мы изучим подробнее в этом уроке

Метод pop

Удаление элементов из словаря можно сделать с помощью метода pop — в этом словарь уже больше похож на список. Только вместо индекса используется ключ:

d = 'a': 1, 'b': 2> d.pop('a') # 1 d # d.pop('BANG') # KeyError: 'BANG' 

Этот пример показывает, что будет, если попытаться извлечь значение по несуществующему ключу — мы получим исключение.

Однако метод pop можно вызывать с указанием значения по умолчанию. В этом случае при отсутствии ключа в словаре будет возвращено это самое значение, а исключение возбуждено не будет:

d = 'a': 1, 'b': 2> d.pop('BANG', None) d.pop('BANG', 42) # 42 

Аналогом спискового pop без аргументов для словаря служит метод popitem . Этот метод извлекает ключ и значение в виде кортежа, а если словарь уже пуст, то возбуждает исключение:

d = 'a': 1> d.popitem() # ('a', 1) d.popitem() # KeyError: 'popitem(): dictionary is empty' 

В пайтоне, начиная с версии 3.7, гарантирован порядок LIFO — Last In First Out. Это значит, что пары будут извлекаться в порядке обратном добавлению, от самых ранних до самых поздних по времени добавления. При этом мы можем быть уверены в том, что:

  • Все пары будут извлечены
  • Каждая пара будет извлечена строго один раз

Дополнение одного словаря другим

У списка есть метод extend , который расширяет один список другим. У словаря есть похожий по смыслу метод update . Но при вызове update ассоциированный объект словаря не просто получает пары «ключ-значение» из нового словаря. Происходит именно обновление данных — поэтому метод и называется update . Работает это так:

  • Новые ключи дописываются в словарь
  • Если какие-то ключи уже существовали до этого, то связанные с ними значения, будут заменены новыми

Так это выглядит в коде:

cart = 'apples': 2, 'oranges': 1> addon = 'oranges': 5, 'lemons': 3> cart.update(addon) cart # 

В коде выше мы добавили лимоны и обновили количество апельсинов.

Копирование словаря

В случае списков мы можем сложить два списка и получить один из двух вариантов:

  • Новый список из двух списков
  • Копию одного списка, которую можно дополнить данными из второго

Но словари нельзя складывать, да и срезы словари тоже не поддерживают. Зато у словаря есть метод copy . Он работает как копирование списка с помощью среза [:] — при вызове он возвращает поверхностную копию из словаря. Так же ее называют «неглубокой копией» или shallow copy.

Поверхностная копия воспроизводит только структуру словаря: не копирует значения, а только создает на них новые ссылки. Тем не менее поверхностная копия — это новый словарь, который может изменять свой состав, не влияя на оригинал:

d = 'a': 1, 'b': [42]> c = d.copy() c.update('a': 10, '1k': 1024>) c # c['b'].append(None) c # d # 

Словарь c получил собственную структуру, при этом его обновление не затронуло оригинальный словарь d . Однако изменение объекта списка по ссылке затронуло и оригинал, потому что при копировании словаря ссылка на список тоже скопировалась.

Очистка словаря

Списки можно очистить с помощью присваивания срезу l[:] = [] . В случае словаря вместо присваивания срезу используется метод clear .

Метод clear() удаляет все элементы из текущего словаря:

d = 'a': 1> 

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов

Наши выпускники работают в компаниях:

Поменять местами в dict() значения на ключи

Поменять ключи и значения местами
Добрый день. Задача такая: поменять ключи и значения меняются местами. Если несколько ключей.

Поменять местами информацию, содержащую максимальный и минимальный ключи
Создание и обработка структур типа «дерево» Поменять местами информацию, содержащую максимальный.

Поменять местами информацию, содержащую максимальный и минимальный ключи
Поменять местами информацию, содержащую максимальный и минимальный ключи. Создание и обработка.

Менять местами ключи и значения в объекте
Необходимо реализовать функцию, которая меняет местами ключи и значения в объекте. Функция.

1183 / 759 / 277
Регистрация: 05.09.2021
Сообщений: 1,772

Лучший ответ

Сообщение было отмечено Catstail как решение

Решение

rcoin, код выше больно читать, скажи в двух словах, что хочешь сделать и что не получается?

Добавлено через 2 минуты
А по вопросу:

1 2 3 4 5
dct = {'key': 'val'} res = {v: k for k, v in dct.items()} print(dct) print(res)

Регистрация: 31.10.2021
Сообщений: 59

Не получается поменять местами потому что значение является списком а список
не может быть ключем.
Вот это и не получается

у меня вот такой вывод ('+51234567890', ['Михаил']) ('+71234567810', ['Сергей']) ('+71234567890', ['Сергей']) ('+72134567890', ['Николай']) а должен быть ('Михаил', ['+51234567890']) ('Николай', ['+72134567890']) ('Сергей', ['+71234567890', '+71234567810'])

Поменять ключи и значения местами

Добрый день. Задача такая: поменять ключи и значения меняются местами. Если несколько ключей относятся к одному значению, то новое значение должно быть кортежем со всеми соответствующими ключами. Можно использовать только один цикл. При том в дальнейшем эта функция должна будет использоваться в ф-ии создания сокращенного картежа. Как поменять ключи и значения местами понимаю, а как сделать кортеж с ключами не могу понять.

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Поменять местами в dict() значения на ключи
#Help Me »’ Вводятся номера телефонов в формате: номер_1 имя_1 номер_2 имя_2 . номер_N.

Csv поменять местами значения
есть 20 мегабайтовый файл с около 100 000 записей но по странному стечению обстоятельств, файл.

Поменять значения переменных местами
a = 10 b = 25 c = 12 d = 100 Необходимо поменять значение переменных местами, т.е., используя.

Поменять местами информацию, содержащую максимальный и минимальный ключи
Создание и обработка структур типа «дерево» Поменять местами информацию, содержащую максимальный.

Поменять местами информацию, содержащую максимальный и минимальный ключи
Поменять местами информацию, содержащую максимальный и минимальный ключи. Создание и обработка.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *