我有一个来自geotiff文件的2D数组。请参见下面的示例数组:
example_array = [[ 0, 1, 1, 0, 0, 0, 0],
[ 2, 1, 1, 2, 0, 0, 0],
[ 0, 3, 1, 1, 3, 0, 0],
[ 4, 1, 1, 4, 0, 0, 0],
[ 0, 5, 1, 1, 5, 0, 0],
[ 0, 1, 1, 0, 0, 0, 0]]
我试图写一个程序,将改变每个嵌套列表中第一个大于1的数字为'value +100'。
在其他人的帮助下,可以看到下面的工作代码片段:
for i, sub_list in enumerate(example_array[1:], start= 1):
for j, entry in enumerate(sub_list[1:][1:1], start = 1):
if entry > 1 and j != 1 and j != len(sub_list):
example_array[i][j] += 100
print(example_array)
上面的代码产生了下面的错误示例数组,其中没有任何值发生变化:
incorrect_example_array = [[ 0, 1, 1, 0, 0, 0, 0],
[ 2, 1, 1, 2, 0, 0, 0],
[ 0, 3, 1, 1, 3, 0, 0],
[ 4, 1, 1, 4, 0, 0, 0],
[ 0, 5, 1, 1, 5, 0, 0],
[ 0, 1, 1, 0, 0, 0, 0]]
我想创建以下正确的示例数组
correct_example_array = [[ 0, 1, 1, 0, 0, 0, 0],
[ 102, 1, 1, 2, 0, 0, 0],
[ 0, 103, 1, 1, 3, 0, 0],
[ 104, 1, 1, 4, 0, 0, 0],
[ 0, 105, 1, 1, 5, 0, 0],
[ 0, 1, 1, 0, 0, 0, 0]]
1条答案
按热度按时间rdlzhqv91#
外部循环不需要索引;
enumerate
不需要。一旦找到匹配项,就可以中断内部循环。也不需要对内部索引执行任何检查。