#python #dictionary #encryption
#python #словарь #шифрование
Вопрос:
Encrypt_2 = {'y': 'a', 'z': 'b', 'a': 'c', 'b': 'd', 'c': 'e', 'd': 'f', 'e': 'g', 'f': 'h', 'g': 'i', 'h': 'j', 'i': 'k', 'j': 'l', 'k': 'm', 'l': 'n', 'm': 'o', 'n': 'p', 'o': 'q', 'p': 'r', 'q': 's', 'r': 't', 's': 'u', 't': 'v', 'u': 'w', 'v': 'x', 'w': 'y', 'x': 'z'}
##printing encrypted text
Encrypt_2['f', 'c', 'j', 'j', 'm']
Примечание: будет получена синтаксическая ошибка, я пытаюсь найти более простой способ напечатать несколько значений, перечислив их ключи.
Я знаю, что стандартными способами печати значений ключей будут Encrypt_2[‘f’], Encrypt_2 [‘c’], Encrypt_2 [‘j’] ……….
Ответ №1:
что вы могли бы попробовать, так это:
keys = ['f', 'c', 'j', 'j', 'm'] # or keys='fcjjm'
а затем просмотрите этот список и получите значение для каждого ключа
values = [Encrypt_2[x] for x in keys]
Ответ №2:
Вот 4 способа сделать это. Обратите внимание, что с номером 4 97 есть ord('a')
и не требует никакого словаря для работы (поскольку вы выполняете одну и ту же операцию с каждым символом (сдвигая его на 2), нет особых причин создавать большой словарь для его представления).).
encrypt_2 = {'y': 'a', 'z': 'b', 'a': 'c', 'b': 'd', 'c': 'e', 'd': 'f', 'e': 'g', 'f': 'h', 'g': 'i', 'h': 'j', 'i': 'k', 'j': 'l', 'k': 'm', 'l': 'n', 'm': 'o', 'n': 'p', 'o': 'q', 'p': 'r', 'q': 's', 'r': 't', 's': 'u', 't': 'v', 'u': 'w', 'v': 'x', 'w': 'y', 'x': 'z'}
def convert_text1(string):
characters = [] # empty list where we will put values
for char in string:
# 'char' represents the current character in the string
characters.append(encrypt_2[char])
return ''.join(characters)
# each characters is joined, separated by an empty string
# e.g. ['a', 'b', 'c'] to 'abc'
def convert_text2(string):
return ''.join(encrypt_2[char] for char in string)
def convert_text3(string):
return ''.join(map(encrypt_2.__getitem__, string))
def convert_text4(string):
return ''.join(chr((ord(char) 2 - 97) % 26 97) for char in string)
Ответ №3:
вы можете попробовать цикл for
for i in ['f', 'c', 'j', 'j', 'm']:
print(Encrypt_2[i])
>>> hello