推导式
for each in s:if res and res[-1].lower() == each.lower() and res[-1] != each:
res.pop()
else:
res.append(each)
请教if后面的判断句子怎么理解?怎么分解的看,现在这个推导式不知道从哪里看起? 3个元素判断:
第一个res单独判断,非0或0。
第二和三是用是否相等判断的。
三个元素都为非0,整个if成立。
if res and (res[-1].lower() == each.lower()) and (res[-1] != each):
if res and res[-1].lower() == each.lower() and res[-1] != each:
先检查条件 res ,单独一个变量作为条件时,只要变量不为 空字符串、空字典、空列表等 均表示为 True
而后检查条件 res[-1].lower() == each.lower() ,这里就是看字符串第一个字符串和最后字符是否相等
用 lower 函数同时转换为小写字母,即这里条件的意思就是:不区分大小写比较字符是否相同 若相同 返回 True ,反之 False
最后判断 res[-1] != each 判断字符是否完全相同
因为条件都是用 and 进行连接,所以必须都为 True 才执行 if 下的代码块,反之只要一个不为 True 就执行 else
页:
[1]