目录

  • 1.举例
  • 2.运行结果
  • 3.setdefault方法的官方描述
  • 4.分析
  • 5.总结

1.举例

在编程中,我们有时会见到python字典在setdefault方法后面接.append(),我们来看一个例子:

2.运行结果

那应该怎么理解这个程序的第5行代码呢?可以从程序的运行结果入手:

3.setdefault方法的官方描述

我们看到产生的列表是由一个个键值对,键是名字的首字母,值是名字的全拼,这种方法的好处在于可以减少程序运行的时间。但我们先不去赘述方法,在此仅讨论append的位置为什么会在setdefault后面。
我们先看setdefault的官方文档的描述:

setdefault(key[, default])
If key is in the dictionary, return its value. If not, insert key with a value of default and return default. default defaults to None.

也就是说:

如果key这个键在列表中存在,返回值是其键值。
如果key这个键在列表中不存在,返回值是[,default]的值。

4.分析

因此,函数第4、5行代码:

for girl in girls:lettergirls.setdefault(girl[0],[]).append(girl)

girl是变量,girls是列表,lettergirls是字典
我们从左往右分析:

lettergirls.setdefault(girl[0],[])这部分的含义是,在lettergirls这个字典中,寻找girl[0]元素(也就是girl变量的首字母),如果没找到,就返回它的默认值[]这个空列表。

那么,lettergirls.setdefault(girl[0],[])这部分我们可以看作[]。而第五行代码也就可以按照[].append(girl)理解。那么setdefault方法后接append()的原因也就迎刃而解了。

5.总结

总结一下:

lettergirls.setdefault(girl[0],[]).append(girl)

这行代码的作用就是,在lettergirls这个空字典中不断添加一个个键值对。键值对的组成是由girl变量的首字母充当键,girl变量整体置于列表中充当键值。(可对比上面命令提示符的图片进行理解)

python字典setdefault方法后接append()的理解相关推荐

  1. python的setdefault()方法

    描述 Python 字典 setdefault() 函数和get() 方法类似, 如果键不存在于字典中,将会添加键并将值设为默认值. 语法 setdefault()方法语法:dict.setdefau ...

  2. Python 字典 fromkeys()方法

    Python 字典 fromkeys() 方法用于创建一个新的字典,并以可迭代对象中的元素分别作为字典中的键,且所有键对应同一个值,默认为None. fromkeys() 方法语法: 1 dict.f ...

  3. Python字典使用方法大全

    Python字典使用方法大全 python中还有一种数据结构特别重要,就是字典.字典是键(key)-值(value)一一对应组成.这样的键-值组合叫做项.键与值之间用':'分隔,项之间用','分隔. ...

  4. Python 字典 values() 方法

    描述 Python 字典 values() 方法以列表形式(并非直接的列表,若要返回列表值还需调用list函数)返回字典中的所有值. 语法 values() 方法语法: D.values() 参数 无 ...

  5. python字典增加方法_python增加字典项的方法

    python增加字典项的方法 发布时间:2020-07-17 14:00:24 来源:亿速云 阅读:101 作者:清晨 这篇文章主要介绍python增加字典项的方法,文中介绍的非常详细,具有一定的参考 ...

  6. Python 字典 items()方法

    Python 字典 items() 函数作用:以列表返回可遍历的(键, 值) 元组数组. items()方法语法: dict.items() 操作方法: dict = {'老大':'15岁','老二' ...

  7. [Python] 字典 items()方法:同时对字典的键和值进行遍历

    描述: Python 字典(Dictionary) items() 函数以列表返回可遍历的(键, 值) 元组数组. 语法: dict.items() 返回值: 返回可遍历的(键, 值) 元组数组. 主 ...

  8. Python字典合并方法大全

    old = {'辽宁舰': '滑跃', '山东舰': '滑跃'} new = {'福建舰': '弹射'}today = {} today.update(old) today.update(new) p ...

  9. python字典append_python的dict 有append方法吗

    展开全部 python的dict没有append方法.e68a843231313335323631343130323136353331333431363637 Python是一种计算机程序设计语言.是 ...

最新文章

  1. 一起来开发Android的天气软件(一)——功能规格介绍
  2. 机试题型_2020年焊工(技师)新版试题及焊工(技师)试题及答案
  3. word域转换html,word域代码转换html丢失解决办法.docx
  4. ai绘画到底有大强?我开发了一款ai绘画(来看看)
  5. python-selenium自动化测试网页
  6. python改变列的数据类型_更改Pandas中列的数据类型
  7. Git提交报错git-upload-pack
  8. 使用 VMware 16 RHEL7.7 虚拟机静默安装 Oracle 19c RAC
  9. 开发板------OK6410
  10. python做马尔科夫模型预测法_python实现隐马尔科夫模型HMM
  11. 工具型产品如何建立自己的商业化模式?
  12. GitHub中Organization的Member邀请和clone代码库
  13. 随机从长度未知的数组中抽取数字,且保证每个元素被抽到的概率相同
  14. 企业网盘+超融合,联想云加速的双引擎
  15. consul-esm介绍
  16. 跟siki学院教程学习愤怒的小鸟案例猪多次碰撞解决记录<一>
  17. 论文讲解-Tripartite: Tackle Noisy Labels by a More Precise Partition
  18. Android调用天气预报所对应的城市Id
  19. OnOK()与OnCancel()
  20. 计算机怎么音乐设置,怎样设置音乐一直播放?设置音乐一直播放教程

热门文章

  1. PostgreSQL 中文资料汇总
  2. 微信小程序分享获取携带参数以及参数接收
  3. 医疗产品设计的新趋势
  4. Oracle 忘记system密码后如何找回
  5. 雀雀JavaScript操作节点
  6. 【行人检测】行人检测综述
  7. CMAKE查找库:find_package和pkg_check_moduls的区别
  8. 使用Megascans,Blender和Substance 3D画家创建渔人旅馆(p2)
  9. Win10+TensorFlow-gpu1.10+CUDA9.0+Cudnn7.4.1 搭建深度学习gpu环境
  10. 拿好你的iPhone8,因为你真的摔不起