#coding=utf-8
'''
Created on 2014-3-21
@author: Neo
'''
def PrintList(array):#输出数组
for i in range(array.__len__()):
print array[i]
def SetList(array):#给数组赋值
row = 11
col = 11
for i in range(array.__len__()):
for j in range(array[i].__len__()):
array[i][j] = row
row += 10
col += 1
row = col
print "赋值后的
二维数组:"
PrintList(array)
return array
def InitList(x, y):
#初始化一个二维数组
array = [([0] * y) for i in range(x)]
return array
def GetListByCoord(array, radius, x, y):
#根据半径来确定数组的行数和列数
row_col = 2 * radius + 1
#初始化结果数组
result = InitList(row_col, row_col)
#获取传入的array的行数和列数
arrayRow, arrayCol = len(array), len(array[0])
#坐标x、y的值即为结果数组的中心,依此为偏移
for i in range(result.__len__()):
for j in range(result.__len__()):
if (i+x-radius < 0 or j+y-radius < 0 or
i+x-radius >= arrayRow or j+y-radius >= arrayCol):
result[i][j] = 0
else:
result[i][j] = array[i+x-radius][j+y-radius]
#打印结果
print "结果为:"
PrintList(result)
if __name__ == '__main__':
#数组7列6行
array = SetList(InitList(6,7))
GetListByCoord(array, 1, 3, 3)
GetListByCoord(array, 2, 3, 3)
GetListByCoord(array, 2, 0, 0)
GetListByCoord(array, 2, 0, 6)
GetListByCoord(array, 2, 5, 0)
GetListByCoord(array, 2, 5, 6)
运行结果为:
---------------------------------------------------------------------------------------------
赋值后的二维数组:
[11, 21, 31, 41, 51, 61, 71]
[12, 22, 32, 42, 52, 62, 72]
[13, 23, 33, 43, 53, 63, 73]
[14, 24, 34, 44, 54, 64, 74]
[15, 25, 35, 45, 55, 65, 75]
[16, 26, 36, 46, 56, 66, 76]
结果为:
[33, 43, 53]
[34, 44, 54]
[35, 45, 55]
结果为:
[22, 32, 42, 52, 62]
[23, 33, 43, 53, 63]
[24, 34, 44, 54, 64]
[25, 35, 45, 55, 65]
[26, 36, 46, 56, 66]
结果为:
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 11, 21, 31]
[0, 0, 12, 22, 32]
[0, 0, 13, 23, 33]
结果为:
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[51, 61, 71, 0, 0]
[52, 62, 72, 0, 0]
[53, 63, 73, 0, 0]
结果为:
[0, 0, 14, 24, 34]
[0, 0, 15, 25, 35]
[0, 0, 16, 26, 36]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
结果为:
[54, 64, 74, 0, 0]
[55, 65, 75, 0, 0]
[56, 66, 76, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]