如何在Python中基于列表推导式按条件将对应列表元素置零?
解决方案
直接修改列表推导式,增加对k=0的判断分支,即可实现需求:
frac = [0, .1, .5, .3, .7, 1.1] ll = [0 if k == 0 else [i + 1 for i in range(5) if i <= k*4 < (i+1)] for k in frac] print(ll) # 输出结果: [0, [1], [3], [2], [3], [5]]
改动说明
原代码中,当k=0时,k*4=0会满足i=0的判断条件,生成子列表[1]。通过在最外层的列表推导式中添加0 if k == 0 else ...的条件判断,直接将frac中值为0的元素对应的ll元素设为0,其余元素保持原有的生成逻辑不变。
内容的提问来源于stack exchange,提问作者Expectation mean first moment
相关产品推荐
相关产品推荐

