使用两个for中使用字典
boys=['chris','arnold','bob','davice']
girls=['alice','bernice','clarie','acy']
litergirls={}
g='s'
b='a'
for girl in girls:
litergirls.setdefault(girl[0],[]).append(girl)
print([(b,g) for b in boys])
print([(b,g) for g in litergirls[b[0]]])
print([(b,g) for b in boys for g in litergirls[b[0]]])
>>> ================================ RESTART ================================
>>>
[('chris', 's'), ('arnold', 's'), ('bob', 's'), ('davice', 's')]
[('a', 'alice'), ('a', 'acy')]
Traceback (most recent call last):
File "D:\Program Files\python\556.py", line 48, in <module>
print([(b,g) for b in boys for g in litergirls[b[0]]])
File "D:\Program Files\python\556.py", line 48, in <listcomp>
print([(b,g) for b in boys for g in litergirls[b[0]]])
KeyError: 'd'