史泰龙1997 发表于 2020-10-8 10:37:51

小程序请教

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

{:5_96:} 菜鸟一枚,回复请尽量详细一点。感谢!!

昨非 发表于 2020-10-8 10:59:54

setdefault() 方法 :如果键不已经存在于字典中,将会添加键并将值设为默认值。
girls = ['alice','bernice','clarice']
boys = ['chris','arnold','bob']
lettergirls = {}
for girl in girls:             #从girls列表中取出一个名字,进行循环
    lettergirls.setdefault(girl,[]).append(girl)#取第一个字母为“键”,girl为值,添加到字典中
print(lettergirls)      
print(]])
#这里b后面和g前面的加号用于字符串拼接,其中b依次遍历boys列表,g则是以b中第一个字符为依据查找到的lettergirls里的名字

昨非 发表于 2020-10-8 11:01:11

所以你看到的名字拼接中,女孩的名字首字母总是与男孩相同
(满意的话,记得设置最佳答案)

史泰龙1997 发表于 2020-10-8 11:07:12

昨非 发表于 2020-10-8 10:59
setdefault() 方法 :如果键不已经存在于字典中,将会添加键并将值设为默认值。

setdefault(girl,{})的 {}有没有必要呢? 起了什么作用?

昨非 发表于 2020-10-8 11:11:00

史泰龙1997 发表于 2020-10-8 11:07
setdefault(girl,{})的 {}有没有必要呢? 起了什么作用?

那是中括号,就是字典的值是列表形式
{'a': ['alice'], 'b': ['bernice'], 'c': ['clarice']}
后面append是列表的内建函数,所以调用时必须有空列表
页: [1]
查看完整版本: 小程序请教