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

时间:2013-02-02 04:23:26

标签: 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()

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

3 个答案:

答案 0 :(得分:1)

试试这个:

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

密钥应为字符串'L',只有L会尝试使用变量L的值作为密钥。

<强>更新

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

sampleList = list(originalMessage)

答案 1 :(得分:1)

您无需执行originalMessage.split(),只会将'LOL'拆分为['LOL']

一个简单的list(originalMessage)很好。你甚至不需要这样做,因为for char in 'LOL'是一样的。

答案 2 :(得分:0)

你的词典应该是这样的:

phoneCipher = {'A': 2, 'B': 22, ...}