学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输出