学python书里面将嵌套的时候,有一个延展思考:就是当词典中,有的列表键值为1,有的为多数,这时候就需要修改为is或者are输出,输出单数或者是复数需要检测列表的值数量,这时候需要用到这个语句来获得列表值数量的结果:
len(list)
也就是 len(列表名称)
这样就获得了一个字符串结果,判断当这个len(列表名称) == 1 的时候,我们让程序执行输出is,当else,输出are的结果…
举个例子:
favorite_languages = { 'jen' : ['python','ruby'], 'sarah' : ['c'], 'edward' : ['ruby','go'], 'phil' : ['python','haskell'] } for name,languages in favorite_languages.items(): print("\n" + name.title() + "'s favorite languages are:") for language in languages: print("\n" + language.title())
本来原文中的程序是这个样子的,输出结果为:
Jen’s favorite languages are:
Python
Ruby
Sarah’s favorite languages are:
C
Edward’s favorite languages are:
Ruby
Go
Phil’s favorite languages are:
Python
Haskell
这里就不太对了,当语言为单数的时候,应该输出is,所以我们这么修改一下
favorite_languages = { 'jen' : ['python','ruby'], 'sarah' : ['c'], 'edward' : ['ruby','go'], 'phil' : ['python','haskell'] } for name,languages in favorite_languages.items(): if len(languages) == 1: print("\n" + name.title() + "'s favorite languages is:") for language in languages: print("\n" + language.title()) else: print("\n" + name.title() + "'s favorite languages are:") for language in languages: print("\n" + language.title())
通过if语句和len(list)去检测数目
if len(languages) == 1:
当数目为1,执行is输出
当其他情况,执行are输出