鱼C论坛

 找回密码
 立即注册
查看: 1514|回复: 4

[已解决]小程序请教

[复制链接]
发表于 2020-10-8 10:37:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
girls = ['alice','bernice','clarice']
boys = ['chris','arnold','bob']
lettergirls = {}
for girl in girls:             #从girls列表中取出一个名字,进行循环
    lettergirls.setdefault(girl[0],[]).append(girl)         #setdefault在这里的作用是干什么的呀?append 是不是将名字放入了lettergirls字典里面?
print([b+'+'+g for b in boys for g in lettergirls[b[0]]])     #b+'+'+g  b后面的+ 和 g前面的+ 是什么意思?这也是一种规定语法吗?  b 和 g 这里的值是怎么判断的呢?

菜鸟一枚,回复请尽量详细一点。感谢!!
最佳答案
2020-10-8 10:59:54
setdefault() 方法 :如果键不已经存在于字典中,将会添加键并将值设为默认值。
  1. girls = ['alice','bernice','clarice']
  2. boys = ['chris','arnold','bob']
  3. lettergirls = {}
  4. for girl in girls:             #从girls列表中取出一个名字,进行循环
  5.     lettergirls.setdefault(girl[0],[]).append(girl)#取第一个字母为“键”,girl为值,添加到字典中
  6. print(lettergirls)        
  7. print([b+'+'+g for b in boys for g in lettergirls[b[0]]])
  8. #这里b后面和g前面的加号用于字符串拼接,其中b依次遍历boys列表,g则是以b中第一个字符为依据查找到的lettergirls里的名字
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-8 10:59:54 | 显示全部楼层    本楼为最佳答案   
setdefault() 方法 :如果键不已经存在于字典中,将会添加键并将值设为默认值。
  1. girls = ['alice','bernice','clarice']
  2. boys = ['chris','arnold','bob']
  3. lettergirls = {}
  4. for girl in girls:             #从girls列表中取出一个名字,进行循环
  5.     lettergirls.setdefault(girl[0],[]).append(girl)#取第一个字母为“键”,girl为值,添加到字典中
  6. print(lettergirls)        
  7. print([b+'+'+g for b in boys for g in lettergirls[b[0]]])
  8. #这里b后面和g前面的加号用于字符串拼接,其中b依次遍历boys列表,g则是以b中第一个字符为依据查找到的lettergirls里的名字
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-8 11:01:11 | 显示全部楼层
所以你看到的名字拼接中,女孩的名字首字母总是与男孩相同
(满意的话,记得设置最佳答案)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-8 11:07:12 | 显示全部楼层
昨非 发表于 2020-10-8 10:59
setdefault() 方法 :如果键不已经存在于字典中,将会添加键并将值设为默认值。

setdefault(girl[0],{})的 {}有没有必要呢? 起了什么作用?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-8 11:11:00 | 显示全部楼层
史泰龙1997 发表于 2020-10-8 11:07
setdefault(girl[0],{})的 {}有没有必要呢? 起了什么作用?

那是中括号,就是字典的值是列表形式
  1. {'a': ['alice'], 'b': ['bernice'], 'c': ['clarice']}
复制代码

后面append是列表的内建函数,所以调用时必须有空列表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-3 06:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表