替换任意嵌套列表中的元素

时间:2019-05-25 07:18:33

标签: python-3.x

我有一个任意的数据集,以嵌套列表的形式给出。我希望将数据> 0中的所有值替换为1,以创建一种二进制数组。类似于规范化。

我在想,最好用for循环来完成。我尝试使用枚举,但是对枚举类型感到困惑。

例如:

test = [[5,5,0,0,5],[0,0,0,0,5]]

for i in range(len(test)):
    for j in range(len(test[i])):
        if j > 0:
            test[i][j] = 1

我希望:

[[1,1,0,0,1],[0,0,0,0,1]]

但是得到了:

[[5, 1, 1, 1, 1], [0, 1, 1, 1, 1]]

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

由于需要替换> 0的值,因此条件应如下。选中j > 0意味着除第一个嵌套列表值以外的所有嵌套列表值都将设置为1

test = [[5,5,0,0,5],[0,0,0,0,5]]

for i in range(len(test)):
    for j in range(len(test[i])):
        if test[i][j] > 0:
            test[i][j] = 1