字典中的多个键?

时间:2016-11-07 23:02:58

标签: python dictionary

我想知道如何输入字符串并从字典中获取多个键?例如,这是我的代码,我想打印像#34;欢迎来到黑社会"并用字典中的字母进行编码。

def main():
    print("*********************************************************************************************")
    print("What exactly is your use for this? Whatever, Enter a message because your hiding something...")
    print("*********************************************************************************************")

    userInput = input("Enter your message to encode: ")
    userInput = userInput.lower()
    # encoding dictionary
    encoding = {"a":"b","b":"c","c":"d","d":"e","e":"f","f":"g","g":"h","h":"i","i":"j","j":"k","k":"l","l":"m","m":"n",
                "n":"o","o":"p","p":"q","q":"r","r":"s","s":"t","t":"u","u":"v","v":"w","w":"x","x":"y",
                "y":"z","z":"a"," ":"-"}

    #userInput = encoding[key]

    for key in encoding:
        if (userInput == key):
            print(encoding[key])
            break

main()

2 个答案:

答案 0 :(得分:1)

你不应该迭代encoding,它是字典。相反,您可以只迭代输入字符串,将每个character替换为encoding[character]

''.join([encoding[c] for c in somestring])

答案 1 :(得分:0)

print(''.join([encoding.get(letter, '') for letter in userInput]))

基本上,您希望遍历输入消息(userInput)以对整个事物进行编码。加入的参数([encoding.get(letter, '') for letter in userInput])就是这样:对于输入中的每个字符,它都会找到匹配的编码。.get也很方便,因为在字母不是的情况下找到(即,如果用户输入了一个数字),该字符是空字符串。

''.join(something)获取something中的所有元素并将其作为字符串放在一起。更一般地说,'a string'.join(something)会在'a string'的每个元素之间放置something,因此如果'a string'为空,则将空字符串置于其间,有效地将列表中的所有内容合并到一个字符串。

相关问题