关于字典嵌套列表时的问题 (语言-python)

img

img

为什么‘a’和‘c’的值不存在列表里遍历的时候会把一个字符串拆开显示啊?
下面是正确显示的

img

img

实际上字符串也是可迭代的,就像列表一样。

#当languages为字符串时,你使用for language in languages:会访问字符串里面的每一个字符
#当languages为列表时,你使用for language in languages:会访问列表里面的每一个元素
#可能的改法:
for name,languages in fa_lan.items():
    print("In"+name.title()+"like:"if isinstance(languages, str):  #判断是否为字符串
        print("\t"+language)
    else:  #列表
        for language in languages:
            print("\t"+language.title())


因为字符串也可以像列表那样遍历。如果不是列表的话,程序会认为你要遍历字符串,所以就一个个字符拆开了。