鱼C论坛

 找回密码
 立即注册
查看: 1790|回复: 2

[已解决]怎么在python的dict中添加空格的赋值

[复制链接]
发表于 2021-10-9 20:52:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
msg1e = "esbtr dgh abzqg! vhe ghz yzqtcjxx qx qt btgesjz cbxepj!"
msg2e = "qx qe mht?"
msg3e = "fyj frjxhrj qx yqlljs qs mqej frjjx brrbsujl qs b argxx"


d1 = {'a': 'm', 'b': 'a', 'c': 'c', 'd': 'y', 'e': 't', 'f': 'v', 'g': 'o', 'h': 'u', 'i': 'x', 'j': 'e', 'k': 'j', 'l': 'w', 'm': 'f', 'n': 'z', 'o': 'd', 'p': 'l', 'q': 'i', 'r': 'k', 's': 'h', 't': 'n', 'u': 'g', 'v': 'b', 'w': 'q', 'x': 's', 'y': 'p', 'z': 'r'}
d2 = {'a': 'c', 'b': 'a', 'c': 'm', 'd': 'y', 'e': 'v', 'f': 't', 'g': 'o', 'h': 'u', 'i': 'z', 'j': 'e', 'k': 'l', 'l': 'd', 'm': 'f', 'n': 'x', 'o': 'w', 'p': 'j', 'q': 'i', 'r': 'r', 's': 'n', 't': 'b', 'u': 'g', 'v': 'p', 'w': 'q', 'x': 's', 'y': 'h', 'z': 'k'}



def decipher_message(msg,guide):
    guide[' '] = ' '
    result = []
    for letter in msg:
        result.append(guide[letter])
    return result

在上面的字典当中,我没办法直接在字典里加空格的赋值(作业设定),如果不加上空格的赋值,python显示KeyError :' '
但是如果加上了guide[' '] = ' ', python又会显示KeyError :' ! '
最佳答案
2021-10-9 21:06:22
那是因为你字符串里有空格和!号,而你字典里没有这些键,获取不到键值所以报错了,如果字典里没有的键就原封不动,那可以这样写
msg1e = "esbtr dgh abzqg! vhe ghz yzqtcjxx qx qt btgesjz cbxepj!"
msg2e = "qx qe mht?"
msg3e = "fyj frjxhrj qx yqlljs qs mqej frjjx brrbsujl qs b argxx"


d1 = {'a': 'm', 'b': 'a', 'c': 'c', 'd': 'y', 'e': 't', 'f': 'v', 'g': 'o', 'h': 'u', 'i': 'x', 'j': 'e', 'k': 'j', 'l': 'w', 'm': 'f', 'n': 'z', 'o': 'd', 'p': 'l', 'q': 'i', 'r': 'k', 's': 'h', 't': 'n', 'u': 'g', 'v': 'b', 'w': 'q', 'x': 's', 'y': 'p', 'z': 'r'}
d2 = {'a': 'c', 'b': 'a', 'c': 'm', 'd': 'y', 'e': 'v', 'f': 't', 'g': 'o', 'h': 'u', 'i': 'z', 'j': 'e', 'k': 'l', 'l': 'd', 'm': 'f', 'n': 'x', 'o': 'w', 'p': 'j', 'q': 'i', 'r': 'r', 's': 'n', 't': 'b', 'u': 'g', 'v': 'p', 'w': 'q', 'x': 's', 'y': 'h', 'z': 'k'}



def decipher_message(msg,guide):
    # guide[' '] = ' '
    result = []
    for letter in msg:
        result.append(guide.get(letter, letter))
    return result

print(''.join(decipher_message(msg1e, d1)))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-9 21:06:22 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
那是因为你字符串里有空格和!号,而你字典里没有这些键,获取不到键值所以报错了,如果字典里没有的键就原封不动,那可以这样写
msg1e = "esbtr dgh abzqg! vhe ghz yzqtcjxx qx qt btgesjz cbxepj!"
msg2e = "qx qe mht?"
msg3e = "fyj frjxhrj qx yqlljs qs mqej frjjx brrbsujl qs b argxx"


d1 = {'a': 'm', 'b': 'a', 'c': 'c', 'd': 'y', 'e': 't', 'f': 'v', 'g': 'o', 'h': 'u', 'i': 'x', 'j': 'e', 'k': 'j', 'l': 'w', 'm': 'f', 'n': 'z', 'o': 'd', 'p': 'l', 'q': 'i', 'r': 'k', 's': 'h', 't': 'n', 'u': 'g', 'v': 'b', 'w': 'q', 'x': 's', 'y': 'p', 'z': 'r'}
d2 = {'a': 'c', 'b': 'a', 'c': 'm', 'd': 'y', 'e': 'v', 'f': 't', 'g': 'o', 'h': 'u', 'i': 'z', 'j': 'e', 'k': 'l', 'l': 'd', 'm': 'f', 'n': 'x', 'o': 'w', 'p': 'j', 'q': 'i', 'r': 'r', 's': 'n', 't': 'b', 'u': 'g', 'v': 'p', 'w': 'q', 'x': 's', 'y': 'h', 'z': 'k'}



def decipher_message(msg,guide):
    # guide[' '] = ' '
    result = []
    for letter in msg:
        result.append(guide.get(letter, letter))
    return result

print(''.join(decipher_message(msg1e, d1)))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-9 21:14:54 | 显示全部楼层
hrpzcf 发表于 2021-10-9 21:06
那是因为你字符串里有空格和!号,而你字典里没有这些键,获取不到键值所以报错了,如果字典里没有的键就原 ...

非常感谢!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 06:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表