python中字典setdefault()方法理解。

来源:互联网 发布:零基础java难学吗 编辑:程序博客网 时间:2024/05/16 17:22

  今天在读《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()方法。