Получить ключ по значению
📁 словарь, строка, python
"
Есть словарь:
d = {'a': '1', 'b': '2', 'c': '3'}и есть строка:
stroka = 'a3a2c'Если элемент строки есть среди значений словаря, необходимо вывести соответствующий значению ключ. Если среди ключей - то вывести значение по ключу значение. Вывести необходимо в две строки, значения отдельно от ключей.
Т.е. для строки 'a3a2c' ожидаемый вывод '113' и 'cb'
Как вывести значения по ключу, я разобрался:
for i in stroka: if i in d.keys(): print(d[i], end='')А вот вывести ключ по значению у меня не получается:
for j in stroka: if j in d.values(): print(?????, end='')"
"
Как то так:
d = { 1: '1', '2': 2, 3: '3',}def get_key(d, value): for k, v in d.items(): if v == value: retu kprint(get_key(d, '1'))print(get_key(d, 2))print(get_key(d, 42))Консоль:
12NoneВообще, когда мне нужно получать значение по ключу и ключ по значению, я завожу два словаря.
"
Получение символа по его номеру из Unicode:
>>> chr(65)'A'>>> chr(122)'z'>>> print(chr(128522))?(в Python 2 лучше вместо chr использовать unichr)
Получение номера из Unicode по символу:
>>> ord('A')65>>> ord('z')122>>> ord('?')128522Заранее заготовленные строки с латинскими (и не только) символами есть в модуле string:
>>> import string>>> string.ascii_uppercase'ABCDEFGHIJKLMNOPQRSTUVWXYZ'>>> string.ascii_lowercase'abcdefghijklmnopqrstuvwxyz'>>> string.ascii_letters'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'По этим строкам можно проходиться циклом:
for c in string.ascii_letters: print(c)Во всяких генераторных выражениях и условиях, разумеется, тоже:
>>> import string>>> s = 'fooУБРАТЬbarОТСЮДАbazНЕЛАТИНСКОЕ'>>> s2 = ''.join(c for c in s if c in string.ascii_letters)>>> print(s2)foobarbaz Войдите чтобы оставить ответ