girls = ['alice', 'bernice', 'clarice']
boys = ['chris', 'arnold', 'bob']
girls 和boys 是两个lists
`letterGirls = {}`
letterGirls 是dictionary
setdefault() 方法将设置 dict_var[key]=default 如果键不在 dict_var 中(在你的情况下 dict_var 是 letterGirls )
dict_var.setdefault() 用法
dict-var.setdefault(somekey,[]).append(somevalue)
在你的代码中
letterGirls.setdefault(girl[0], []).append(girl)
将制作一个形式的字典
{'c': ['clarice'], 'b': ['bernice'], 'a': ['alice']}
key是girl[0],即名字的第一个字母。
您的脚本存在缩进问题。否则会导致Key error。
应该是
girls = ['alice', 'bernice', 'clarice']
boys = ['chris', 'arnold', 'bob']
letterGirls = {}
for girl in girls:
letterGirls.setdefault(girl[0], []).append(girl)
print ([b+'+'+g for b in boys for g in letterGirls[b[0]]])
你的输出
['chris+clarice', 'arnold+alice', 'bob+bernice']
通过获取男孩列表中的每个项目并从字典 letterGirls 中找到具有相同首字母的女孩名字来获得