li=[i for i in li if i]中if i判断什么,原列表li=[1,2,3,false,3,4,5],后变成[1,2,3,3,4,5]
就是判断i是否为真值,每一个类型的变量都有真假值
比如数字0,空字符串“”,空列表[],假布尔值False,空对象None这些都是假值,都会被if筛掉
获取到原列表中if false 时,bool值false是假值
所以不会加入到新的列表里
这个你可以看成是这样的
li = [1, 2, 3, False, 3, 4, False]
li = [i for i in li if i]
print(li)
li = [1, 2, 3, False, 3, 4, False]
tempLi = []
for i in li:
if i:
tempLi.append(i)
print(tempLi)
结果:
[1, 2, 3, 3, 4]
[1, 2, 3, 3, 4]
布尔值也可以看成数字参与操作或者运算, 过滤时, 如果为True保留