python - python中字典将字符串替换为数字

标签 python dictionary replace

我想创建一个简单的密码,其中使用电话号码代替字母(给定输入)。

下面是我的代码,显示了我尝试使用示例文本执行的操作,但我收到关键错误的错误代码:“L”

def main():

    phoneCipher = {'id' : A, 'val': 2},{'id' : B, 'val': 22},{'id' : C, 'val': 222},{'id' : D, 'val': 3},{'id' : E, 'val': 33},{'id' : F, 'val': 333},{'id' : G, 'val': 4},{'id' : H, 'val': 44},{'id' : I, 'val': 444},{'id' : J, 'val': 5},{'id' : K, 'val': 55},{'id' : L, 'val': 555},{'id' : M, 'val': 6},{'id' : N, 'val': 66},{'id' : O, 'val': 666},{'id' : P, 'val': 7},{'id' : Q, 'val': 77},{'id' : R, 'val': 777},{'id' : S, 'val': 7777},{'id' : T, 'val': 8},{'id' : U, 'val': 88},{'id' : V, 'val': 888},{'id' : W, 'val': 9},{'id' : X, 'val': 99},{'id' : Y, 'val': 999},{'id' : Z, 'val': 9999}                  

    #THIS PART IS NOT WORKING BUT IS PART OF WHAT I WANT TO BE ABLE TO DO   
    originalMessage = input("Please input your message to be hidden: ")
    print(originalMessage)
    oMessageSplit = originalMessage.split()
    print(oMessageSplit) 



    sampleList = ['L', 'O', 'L']

    phoneCipherDict = dict((x['id'], x['val']) for x in phoneCipher)
    listCiphered = [phoneCipherDict[x] for x in sampleList]

    print(listCiphered)


main()

我需要的分析和反馈: 我相信这似乎是有问题的,也许它不是整数而不是实际的字符串。如果没有可能的方法来做到这一点,有人可以指出我正确的方向,即使用什么方法来完成这样的事情吗?

最佳答案

试试这个:

phoneCipher = {'id' : 'A', 'val': 2},{'id' : 'B', 'val': 22},{'id' : 'C', 'val': 222},...

键应该是字符串'L',只是L会尝试使用变量L的值作为键。

更新

要从字符串创建列表,请使用

sampleList = list(originalMessage)

关于python - python中字典将字符串替换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14658556/

相关文章:

python - 在gwan下使用python作为restful服务器

python - 为什么 2**1024 工作而 2**(2048/2) 导致 OverflowError?

dictionary - map 迭代是否足够随机以随机选择键?

javascript - 如何在 Phaser 中的 mapLayer 上获取平铺类型

Python ftplib STORE 可靠吗?

python - 使用 Jug,如何在多处理模式下运行嵌套循环?

c# - 运算符 '==' 不能应用于类型 'KeyValuePair' 和 'string' 的操作数?

Python 正则表达式\数字添加\0x

visual-studio-code - 如何防止 Visual Studio Code 中 'Replace all' 之后自动保存文件?

php - PHP 中的 Walking Dom 将找到的字符串列表替换为 "HTML text"