在python中,字典将字符串替换为数字

2024-10-01 04:58:43 发布

您现在位置:Python中文网/ 问答频道 /正文

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

下面是我的代码,显示了我试图用一个示例文本做什么,但是我得到了一个关键错误的错误代码:“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()

需要我的分析和反馈: 我相信这似乎有点问题,也许它不是一个整数对一个实际的字符串。如果没有可能的方法来做这件事,有人能告诉我正确的方向,用什么方法来做这样的事情吗?你知道吗


Tags: toinidforinputismainval
3条回答

您不需要执行originalMessage.split(),这只会将'LOL'拆分为['LOL']。你知道吗

简单的list(originalMessage)就可以了。你甚至不需要这么做,因为for char in 'LOL'是一样的。你知道吗

试试这个:

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

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

更新

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

sampleList = list(originalMessage)

你的字典应该是这样的:

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

相关问题 更多 >