python字典,分配列表

时间:2016-06-09 01:27:03

标签: python dictionary

大家好,我有一个计算机科学课的作业,我必须模仿不同版本的康威生命游戏:https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life

(简而言之,用户输入一组带有'alive'单元格的坐标,然后用户输入电路板的大小,然后输入程序迭代的次数。对于每次迭代,死细胞变为活着如果它被一定数量的细胞包围,并且如果活细胞没有被一定数量的活细胞包围,它就会死亡。

我的想法是实现一个带有两个键的字典:坐标,接收坐标列表和状态,接收字符串(“直播”或“死”)但我很难实现这一点。首先,我必须创建一个用户输入的电路板大小的字典,其中包含n行和m列。其次,我的词典的第一个关键词“坐标”必须接收棋盘的所有坐标。

这种方法是否可行?提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用此方法获取输入

m=5
n=5

#Generate m*n board with all cells Dead
board=[["Dead" for x in range(m)] for y in range(n)] 

#Input list with alive cells
alivelist=[[0,0],[2,3],[4,4]]
print board
# [['Dead', 'Dead', 'Dead', 'Dead', 'Dead'], 
# ['Dead', 'Dead', 'Dead', 'Dead', 'Dead'], 
# ['Dead', 'Dead', 'Dead', 'Dead', 'Dead'], 
# ['Dead', 'Dead', 'Dead', 'Dead', 'Dead'], 
# ['Dead', 'Dead', 'Dead', 'Dead', 'Dead']]

#Block to mark cells Alive
for x in alivelist:
    board[x[0]][x[1]]="Alive"
print board

# [['Alive', 'Dead', 'Dead', 'Dead', 'Dead'], 
# ['Dead', 'Dead', 'Dead', 'Dead', 'Dead'], 
# ['Dead', 'Dead', 'Dead', 'Alive', 'Dead'], 
# ['Dead', 'Dead', 'Dead', 'Dead', 'Dead'], 
# ['Dead', 'Dead', 'Dead', 'Dead', 'Alive']]