String python3字符串到变量

String python3字符串到变量,string,list,variables,dictionary,python-3.x,String,List,Variables,Dictionary,Python 3.x,我目前正试图用代码实现康威的生活游戏,因此构建了一个函数,根据窗口大小生成坐标 def coords_maker(num_x, num_y): num_x += 1 num_y += 1 coords = [] for i in range (0,num_y, 1): for n in range (0,num_x,1): coords.append ('x'+str(n)+'y'+str(i))

我目前正试图用代码实现康威的生活游戏,因此构建了一个函数,根据窗口大小生成坐标

def coords_maker(num_x, num_y):

    num_x += 1  
    num_y += 1  
    coords = []
    for i in range (0,num_y, 1):    
        for n in range (0,num_x,1):
            coords.append ('x'+str(n)+'y'+str(i))   
    return coords
然而,我想随机为结果字符串赋值,将它们标记为活动(1)或死亡(0)。然而,将字符串转换为我所知的变量名的唯一方法是通过dict和var(),但是,对于后续代码来说,坐标保持排序是至关重要的,因为我希望能够遍历已排序的项,并将光标相应地放在坐标名上。比如:

print ('\033['+X_COORD+';'+Y_COORD+'f'+ x1y5) 
如果例如x1y5是变量的对应值(0或1)

有没有一种方便的方法,可以通过dict实现,也可以将字符串的名称转换为变量名? 或者可能。如果我保留一个dict和一个列表,并在列表中存储坐标名称和dict中的值

提前谢谢你! kyril

你使用字典:

def coords_maker(num_x, num_y):

    num_x += 1  
    num_y += 1  
    coords = {}
    for i in range (0,num_y, 1):    
        for n in range (0,num_x,1):
            coords['x'+str(n)+'y'+str(i)] = 0
    return coords
然后使用

 coords[x][y]
这样改变它:

 coords[x][y] = 1
当然,坐标到字符串的转换毫无意义。只需使用列表列表:

def coords_maker(num_x, num_y):

    num_x += 1  
    num_y += 1  
    coords = [[0]*num_x for x in range(num_y)]
    return coords
我也不知道为什么要在坐标上加1:

def coords_maker(num_x, num_y):
    return [[0]*num_x for x in range(num_y)]

为什么不使用二维数组或列表?谢谢您的快速回复。但是我该如何解决字典未分类的问题呢?@kyril:为什么会有问题?但无论如何,我添加了一些不太复杂的方法。谢谢,最后一部分确实解决了这个问题。我只是不知道怎么做,否则。我将+1添加到值中,这样如果我希望窗口的单元格宽度为5个字符,范围就不会停止在4。最后一个问题:列表中的[0]*num_x代表什么?特别是[0]。谢谢@kyril:[0]是一个包含0的列表。我建议您阅读一些Python教程,了解该语言的基础知识。这真的很有帮助。@kyril:这是一个列表。在这方面。它没有任何作用。乘以它将创建一个包含N个元素的列表,因此[0]*5将创建一个如下的列表:[0,0,0,0,0]。Python是交互式的,打开一个提示符并键入它,看看会发生什么。最好的办法。