(小甲鱼python)字典笔记合集一 字典(上)总结 用一个列表、、一个字典、、两个列表等编写摩斯密码实现摩斯密码的解密 split()函数

一、字典(上)总结

1.用一个列表编写摩斯密码实现摩斯密码的解密

代码如下:

#摩斯密码对比表
#创建一个列表
c_table=[".-","A","-...","B","-.-.","C","-..","D",
         ".","E","..-.","F","--.","G","....","H",
         "..","I",".---","J","-.-","K",".-..","L",
         "--","M","-.","N","---","O",".--.","P",
         "--.-","Q",".-.","R","...","S","-","T",
         "..-","U","...-","V",".--","W","-..-","X",
         "-.--","Y","--..","Z",".----","1","..---","2",
         "...--","3","....-","4",".....","5","-.....","6",
         "--...","7","---..","8","----.","9","-----","0"]

#将要输入的密文:... .... .- -. --. .... .- .. --.. .. .-.. .- .. ... .... ..- .. .-.. .- .. --.. .. .... .- .. ... .... .- -. --.

code=input("请输入莫斯摩玛:")  
split_code=code.split(" ")          #在下面第二个列表处解释

#获取密文的索引值,加一就是明文
result=[c_table[c_table.index(each)+1] for each in split_code]   #在下面第二个列表处解释
print(result)

结果:
在这里插入图片描述
2.用两个列表编写摩斯密码实现摩斯密码的解密
代码如下:

#摩斯密码对比表
#创建两个列表

c_table=[".-","-...","-.-.","-..",".","..-.",
         "--.","....","..",".---","-.-",".-..",
         "--","-.","---",".--.","--.-",".-.",
         "...","-","..-","...-",".--","-..-",
         "-.--","--..",".----","..---","...--","....-",
         ".....","-....","--...","---..","----.","-----"]

#摩斯明文表

d_table=["A","B","C","D","E","F",
         "G","H","I","J","K","L",
         "M","N","O","P","Q","R",
         "S","T","U","V","W","X",
         "Y","Z","1","2","3","4",
         "5","6","7","8","9","0"]
         
#密文:... .... .- -. --. .... .- .. --.. .. .-.. .- .. ... .... ..- .. .-.. .- .. --.. .. .... .- .. ... .... .- -. --.

code=input("请输入莫斯摩玛:")
split_code=code.split(" ")     #对输入的字符串进行分割,然后放入列表

#获取密文的索引值,加一就是明文
result=[d_table[c_table.index(each)] for each in split_code]
print(result)

代码中result=[c_table[c_table.index(each)+1] for each in split_code] 为列表推导式。通过index获取字符在c_table中的位置,再获取d_table中同样位置的元素,相当于在两个等长的列表中依次存放每个字符的明文和密文,然后根据相同的位置索引就可以进行解密了,它的展开写法如下:

result=[]
for each in split_code:     
    _=c_table.index(each)    #通过index获取字符在c_table中的位置
    result.append(d_table[_])

split()函数的应用: 对输入的字符串进行分割,然后放入列表

code=input("请输入莫斯摩玛:")
split_code=code.split(" ")

print(split_code)

结果:
在这里插入图片描述

3.用一个字典编写摩斯密码实现摩斯密码的解密
代码如下:

#摩斯密码对比表
#创建一个字典

c_table = {".-":"A", "-...":"B", "-.-.":"C", "-..":"D",
           ".":"E", "..-.":"F", "--.":"G", "....":"H",
           "..":"I", ".---":"J", "-.-":"K", ".-..":"L",
           "--":"M", "-.":"N", "---":"O", ".--.":"P",
           "--.-":"Q", ".-.":"R", "...":"S", "-":"T",
           "..-":"U", "...-":"V", ".--":"W", "-..-":"X",
           "-.--":"Y", "--..":"Z", ".----":"1", "..---":"2",
           "...--":"3", "....-":"4", ".....":"5", "-....":"6",
           "--...":"7", "---..":"8", "----.":"9", "-----":"0"}
           
code=input("请输入莫斯摩玛:")
split_code = code.split(" ")

result = [c_table[each] for each in split_code]
print(result)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值