Задать вопрос
rmfalx
@rmfalx

Как в python вернуть ключ словаря по его значению словаря?

К примеру есть строка и есть словарь. В словаре есть ключи и их значения. Что бы вернуть ключ, нужно -
s3 = 'abcd'
d = {a:'а', b:'б', c:'ц', d:'д'}
for smbl in s3:
    if smbl in d.keys():
        print(d[smbl], end='')


Таким макаром я могу получить ключ, но как получить значение по ключу?

Если я делаю так

for smbl in s3:
    if smbl in d.values:
        print(d[smbl], end='')


То получаю KeyError
  • Вопрос задан
  • 33742 просмотра
Подписаться 2 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
kentuck1213
@kentuck1213
keys = "abcd"
dd = {"a": 1, "b": 2, "c": 3, "d": 4}
for key in keys:
    print(dd[key])
Ответ написан
@deliro
А теперь правильный вариант:
In [1]: e = 'abcd'

In [2]: r = 'абцд'

In [3]: m = str.maketrans(e,r)

In [4]: 'abbcc'.translate(m)
Out[4]: 'аббцц'

In [5]: m = str.maketrans(r,e)

In [6]: 'цааб'.translate(m)
Out[6]: 'caab'
Ответ написан
Roland_Deschain
@Roland_Deschain
d = {"a": 1, "b": 2, "c": 3, "d": 4}
rd = {}
for k, v in d.items():
	rd[v] = rd.get(v, []) + [k]

меняем местами ключи со значениями.
на случай повторяющихся значений, бывшие ключи в новом словаре в виде списка.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы