我自己开始在线学习Python。使用下面的List和for循环创建以下程序,从函数输入中计算节点和边。遵循以下规则:http://mathworld.wolfram.com/GridGraph.html生成节点和边的简单规则。是否可以在Python中只使用While和array而不使用循环和列表理解来创建相同的程序?请你把这件事告诉我好吗?你知道吗
def gridGen(a,b):
return [
[(x,y) for y in range(0,a)]
for x in range(0,b)
]
def edgeListGen(grid):
edgeList = []
for y, row in enumerate(grid):
for x, val in enumerate(row):
if (x < len(row)-1):
edgeList.append(((x,y),(x+1,y)))
if (y < len(grid)-1):
edgeList.append(((x,y),(x,y+1)))
return edgeList
def printGrid(grid):
for line in grid:
for value in line:
print(value, end=' ')
print()
print()
def printEdgeList(L):
for edge in edgeList:
print(edge[0], ',', edge[1])
grid=gridGen(5,2)
printGrid(grid)
edgeList=edgeListGen(grid)
printEdgeList(edgeList)
输出:
(0, 0) (0, 1) (0, 2) (0, 3) (0, 4)
(1, 0) (1, 1) (1, 2) (1, 3) (1, 4)
(0, 0) , (1, 0)
(0, 0) , (0, 1)
(1, 0) , (2, 0)
(1, 0) , (1, 1)
(2, 0) , (3, 0)
(2, 0) , (2, 1)
(3, 0) , (4, 0)
(3, 0) , (3, 1)
(4, 0) , (4, 1)
(0, 1) , (1, 1)
(1, 1) , (2, 1)
(2, 1) , (3, 1)
(3, 1) , (4, 1)
Python不支持开箱即用的多维数组,但是您可以使用numpy轻松地做到这一点。你知道吗
例如,
gridGen
会变成:相关问题 更多 >
编程相关推荐