我在阅读一本书的时候发现了这个程序,我无法理解。任何人都可以用简单的术语解释这个
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]]]
答案 0 :(得分:0)
girls = ['alice', 'bernice', 'clarice']
boys = ['chris', 'arnold', 'bob']
girls
和boys
是两个lists
`letterGirls = {}`
letterGirls
是dictionary
setdefault()
方法将设置dict_var[key]=default
(在您的情况下dict_var
为letterGirls
)
dict_var.setdefault()用法
dict-var.setdefault(somekey,[]).append(somevalue)
在您的代码中
letterGirls.setdefault(girl[0], []).append(girl)
将制作表格的字典
{'c': ['clarice'], 'b': ['bernice'], 'a': ['alice']}
键是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中找到相同的第一个字母的女孩名称来获取