Python如何为嵌套列表中的各子列表补全对应数量的0?
Python实现嵌套列表补0对齐到最长子列表长度
实现思路
- 第一步计算所有子列表的最大长度,作为对齐的基准长度
- 第二步遍历每个子列表,在末尾补充对应数量的0,让所有子列表长度等于最大长度
代码实现
方式1:生成新列表(不修改原数据)
# 原嵌套列表 original_list = [ [0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0], [1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0], [1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0], [1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0], [1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0], [0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0] ] # 计算最长子列表长度 max_length = max(len(sublist) for sublist in original_list) # 生成补0后的新列表 aligned_list = [sublist + [0] * (max_length - len(sublist)) for sublist in original_list] # 打印验证结果 for item in aligned_list: print(item)
方式2:原地修改原列表
如果不需要保留原数据,可以直接修改原列表的每个子列表,节省内存:
max_length = max(len(sublist) for sublist in original_list) for sublist in original_list: sublist.extend([0] * (max_length - len(sublist)))
输出验证
运行后得到的结果和目标格式完全一致,所有子列表长度都对齐到最长的21位,末尾不足的位置补0。
内容的提问来源于stack exchange,提问作者sdfagaewrg
相关产品推荐
相关产品推荐

