首页 > 技术文章 > 七、 列表生成式 练习

silencey 2019-03-27 11:09 原文

如果list中既包含字符串,又包含整数,由于非字符串类型没有lower()方法,所以列表生成式会报错:

使用内建的isinstance函数可以判断一个变量是不是字符串:

请修改列表生成式,通过添加if语句保证列表生成式能正确地执行:

 

答案:

L1 = ['Hello', 'World', 18, 'Apple', None]
L2 = [s.lower() for s in L1 if isinstance(s, str) == True]
L3 = [i for i in L1 if isinstance(i, int) == True]

L4 = [j.lower() for j in L1 if isinstance(j, list) == True]
print(L2)
print(L3)
print(L4)

    这里用的   Sublime         

    ctrl + B   编辑运行

推荐阅读