今天在读《Python基础教程》(第二版)一书,在P83中发现一段代码如下:
girls=['alice','ber','clar']
boys=['chirs','arnold','bob']
lettergirls={}
for girl in girls:
print girl
lettergirls.setdefault(girl[0],[]).append(girl) //在此句处产生疑惑,字典并没有append方法,
为何此处却可以使用?
一开始我想不明白,此处append到底作用在什么地方。接着去查了setdefault()方法的具体描述:
dict.setdefault(key, default=None)
参数:
key -- 查找的键值。
default -- 键不存在时,设置的默认键值。
返回值:
如果字典中包含有给定键,则返回该键对应的值,否则返回为该键设置的值。
这样就可以解释上面那段代码中的append()方法了。因为在以上代码中,把默认值设置为一个空列表,当setdefault()方法执行完毕,就会返回一个列表,而列表有append()方法。