Python中如何在不改变嵌套列表结构的情况下填充空列表
填充嵌套列表中的空列表(保持原结构)
针对你的需求,这里有几种简单的实现方式,都能在不改变原有嵌套结构的前提下完成空列表的填充:
方法1:列表推导式(简洁高效)
直接遍历原列表的每个子列表,空列表替换为包含指定值的列表,非空列表原样保留:
lst = [[1,3], [], [2,2,4], [], [3,5]] # 填充为[0],保持子列表类型 filled_lst = [sub if sub else [0] for sub in lst] print(filled_lst) # 输出: [[1, 3], [0], [2, 2, 4], [0], [3, 5]]
如果需要自定义填充值,把[0]换成[你的目标值]即可,比如填充9就写[9]。
方法2:原地修改原列表
如果不想创建新列表,直接修改原列表的空元素:
lst = [[1,3], [], [2,2,4], [], [3,5]] fill_value = 0 for idx in range(len(lst)): if not lst[idx]: # 判断子列表是否为空 lst[idx] = [fill_value] print(lst) # 输出: [[1, 3], [0], [2, 2, 4], [0], [3, 5]]
特殊情况:将空列表替换为单个值
如果你希望把空列表直接换成单个值(而非子列表),可以调整写法,但注意这会改变部分元素的类型:
filled_lst = [sub if sub else 0 for sub in lst] print(filled_lst) # 输出: [[1, 3], 0, [2, 2, 4], 0, [3, 5]]
内容的提问来源于stack exchange,提问作者Keithx
相关产品推荐
相关产品推荐

