解决此问题的一种方法是改变您的最后一行:
print(key, len([item for item in value if item]))
因此,您的完整代码:
ITEMS = {
'John greased ': ['axle', 'wheel', 'wheels', 'wheel', 'engine', ''],
'Paul alleged ': ['truth', 'crime', 'facts', 'infidelity', 'incident', ''],
'Tracy freed ': ['animals', 'fish', 'slaves', 'slaves', 'slaves', 'pizza'],
'Lisa plowed ': ['field', 'field', '', '', '', ''],
}
for key, value in ITEMS.items():
#print value
print(key, len([item for item in value if item]))
您也可以使用 filter
和 bool
:
print(key, len(filter(bool, value)))
因此,循环:
for key, value in ITEMS.items():
#print value
print(key, len(filter(bool, value)))
您需要申请 list
超过 filter
像这样 print(key, len(list(filter(bool, value))))
在Python 3中。