Python如何将嵌套列表中的0和1按对应维度拆分存入独立新列表
实现方案
可以通过遍历嵌套列表的每个子列表,分别筛选0和1实现,两种常用写法如下:
写法1:列表推导式(代码最简洁)
外层遍历原嵌套列表的每个子列表,内层遍历子列表元素筛选对应值,天然匹配原列表的层级结构:
list1 = [[0,0,0,1,0],[1,1,0,0,1]] ones = [[num for num in sub if num == 1] for sub in list1] zeros = [[num for num in sub if num == 0] for sub in list1]
执行后直接得到预期输出:
ones = [[1], [1, 1, 1]] zeros = [[0, 0, 0, 0], [0, 0]]
写法2:循环迭代(适合需要添加额外处理逻辑的场景)
如果后续要对筛选过程加自定义逻辑,可以用普通循环实现:
list1 = [[0,0,0,1,0],[1,1,0,0,1]] ones = [] zeros = [] for sub in list1: cur_one = [] cur_zero = [] for num in sub: if num == 1: cur_one.append(num) else: cur_zero.append(num) ones.append(cur_one) zeros.append(cur_zero)
内容的提问来源于stack exchange,提问作者user14223729
相关产品推荐
相关产品推荐

