Python列表条件值修改:将0替换为后方首个大于0的数值
Python列表替换实现方案
核心思路
从后往前遍历列表,记录遍历过程中最近遇到的大于0的数值,遇到值为0的元素时直接用该数值替换即可,仅需一次遍历,时间复杂度为O(n)。
实现代码
my_list = [0, 0, 0.5, 0, 0, 0, 0.4, 0, 0.6] # 记录最近遇到的大于0的数值 last_positive = None # 倒序遍历列表 for index in range(len(my_list) - 1, -1, -1): if my_list[index] > 0: last_positive = my_list[index] else: my_list[index] = last_positive print(my_list)
运行输出
[0.5, 0.5, 0.5, 0.4, 0.4, 0.4, 0.4, 0.6, 0.6]
注意事项
上述代码默认列表末尾元素为大于0的有效值,若你的使用场景中末尾可能出现0,可以自行补充逻辑为last_positive设置默认替换值即可。
内容的提问来源于stack exchange,提问作者MinatoDBO
相关产品推荐
相关产品推荐

