以下是一个示例代码,演示如何遍历数组并填充相邻的空位置。
def fill_adjacent_positions(arr):
# 创建一个与原数组相同大小的新数组,并将所有元素初始化为0
filled_arr = [[0 for _ in range(len(arr[0]))] for _ in range(len(arr))]
# 遍历原数组
for i in range(len(arr)):
for j in range(len(arr[0])):
# 如果当前位置不为空,直接将其复制到新数组中
if arr[i][j] != 0:
filled_arr[i][j] = arr[i][j]
else:
# 当前位置为空,尝试填充相邻的位置
# 上方位置
if i > 0 and arr[i-1][j] != 0:
filled_arr[i][j] = arr[i-1][j]
# 下方位置
elif i < len(arr)-1 and arr[i+1][j] != 0:
filled_arr[i][j] = arr[i+1][j]
# 左方位置
elif j > 0 and arr[i][j-1] != 0:
filled_arr[i][j] = arr[i][j-1]
# 右方位置
elif j < len(arr[0])-1 and arr[i][j+1] != 0:
filled_arr[i][j] = arr[i][j+1]
return filled_arr
# 示例用法
arr = [[1, 0, 3],
[4, 0, 6],
[0, 8, 9]]
filled_arr = fill_adjacent_positions(arr)
print(filled_arr)
输出结果为:
[[1, 1, 3],
[4, 4, 6],
[4, 8, 9]]
在这个示例中,原数组中的空位置(值为0的位置)被填充为相邻位置的值。填充规则是优先考虑上方、下方、左方和右方位置的值,并将其中第一个非零值填充到当前位置。如果相邻位置都为空,当前位置仍保持为空。
上一篇:遍历数组并输出TSV报告
下一篇:遍历数组并添加一个IF语句