为了账号安全,请及时绑定邮箱和手机立即绑定

,如下图所示,请问{dict}[list]这个格式返回的结果是什么?

,如下图所示,请问{dict}[list]这个格式返回的结果是什么?

桃花长相依 2022-06-30 11:07:31
下面的程序含义:把“数字的字符串”转换成“整数”第五行:return {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[s]我们知道s='13579',那第五行返回的是啥?我尝试在cmd的python交互模式下调出{'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[s]的返回值都失败了尝试1:s='13579'{'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[s]提示:KeyError:'13579'尝试2:{'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}['13579']依然提示:KeyError:'13579' 
查看完整描述

4 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

python中{dict}[list]这个格式返回的结果是:

{'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[s[0]]

{'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[s[1]]

……

'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[s[100]]


查看完整回答
反对 回复 2022-07-05
?
米脂

TA贡献1836条经验 获得超3个赞

{'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[s[0]]
{'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[s[1]]
……

查看完整回答
反对 回复 2022-07-05
?
呼唤远方

TA贡献1856条经验 获得超11个赞

def char2num(s):
return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s]
#[s]里的字符都是字典的key键,通过map依次取一个字符来找字典里的key对应的value。

查看完整回答
反对 回复 2022-07-05
?
茅侃侃

TA贡献1842条经验 获得超21个赞

我也遇到过同样的困扰,为何自己直接去用“尝试1”、“尝试2”都会报错呢?(提示:KeyError:'13579')
而程序整体的运行确实十分正确顺利,原因就在于对于map()函数的理解不够深入:map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。
所以‘13579’在map函数下其实是按生成器一个字符一个字符的进行运算的,所以并不会报错。而直接像楼主那样的“尝试1”,“尝试2”会爆错也就不奇怪了,{}中并没有‘13579’这样的键。

查看完整回答
反对 回复 2022-07-05
  • 4 回答
  • 0 关注
  • 217 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信