python 字典 setdefault 求助
如图,最后一行代码应该怎么解读为什么会得出运行的结果?最初by_letter是空字典,首字母a没有在其中,所以就返回一个[]键,就相当于是[]append(word)是吗...
如图,最后一行代码应该怎么解读为什么会得出运行的结果?最初 by_letter是空字典,首字母a没有在其中,所以就返回一个[]键,就相当于是[]append(word)是吗,append是只有在setdefault返回默认值时才有效吗?有点混乱,求大神指点words = ['apple', 'bat', 'bar', 'atom', 'book']by_letter = {}for word in words: letter = word[0] by_letter.setdefault(letter, []).append(word)
展开
2个回答
展开全部
最初,by_letter是空字典,首字母a没有在其中,所以就返回一个[],就相当于是[].append(word),同时将键值对'a':['apple']添加到字典中,第2次再遇到首字母是a的单词时,by_letter.setdefault(letter, [])会返回字典的键为'a'的值['apple'],就相当于['apple'].append(word),此时,键为'a'的值就变成了['apple','atom'],以后遇到首字母为a的单词时,都这样处理。其它首字母的处理与处理a的类似。
2019-10-05
展开全部
dict.setdefault(x,y)
返回字典中与键X对应的值,若不存在则返回y,并将X:Y键值对添加到字典中
d.setdefault(x,[])返回的空list与d['a']中的列表是同一个地址(list是可变对象),对这个空列表进行append()操作就相当于对d['a']所指的列表进行操作,一旦字典中存在了键'a',则返回的是d['a']所对应的列表而不是空列表了,后面的操作就相当于:
d['a'].append(word)
结果:将以同一个字母开头word的放在同一个列表中
返回字典中与键X对应的值,若不存在则返回y,并将X:Y键值对添加到字典中
d.setdefault(x,[])返回的空list与d['a']中的列表是同一个地址(list是可变对象),对这个空列表进行append()操作就相当于对d['a']所指的列表进行操作,一旦字典中存在了键'a',则返回的是d['a']所对应的列表而不是空列表了,后面的操作就相当于:
d['a'].append(word)
结果:将以同一个字母开头word的放在同一个列表中
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询