通过列出键打印多个值

时间:2020-12-24 21:49:19

标签: python dictionary encryption

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']........

3 个答案:

答案 0 :(得分:3)

你可以尝试的是:

keys = ['f', 'c', 'j', 'j', 'm'] # or keys='fcjjm'

然后遍历该列表并获取每个键的值

values = [Encrypt_2[x] for x in keys]

答案 1 :(得分: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)

答案 2 :(得分:0)

你可以试试 for 循环

for i in ['f', 'c', 'j', 'j', 'm']:

    print(Encrypt_2[i])

>>> hello
相关问题