аватар question@mail.ru · 01.01.1970 03:00

Получить ключ по значению

"

Есть словарь:

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='')

"

аватар answer@mail.ru · 01.01.1970 03:00

"

Как то так:

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

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

"

аватар answer@mail.ru · 01.01.1970 03:00

Получение символа по его номеру из 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

Последние

Похожие