python3字符串变量

时间:2012-06-20 15:22:04

标签: string list variables dictionary python-3.x

我目前正在尝试在代码中实现Conway的生命游戏,因此构建了一个根据窗口大小生成坐标的函数。

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

然而,我想将值随机分配给结果字符串,将它们标记为alive(1)或dead(0)。然而,他们只有将字符串转换为我已知的变量名称的方法是通过dict和var(),但是,对于进一步的代码,坐标保持排序是必不可少的,因为我希望能够迭代订购商品并将光标相应地放在坐标名称上。类似的东西:

print ('\033['+X_COORD+';'+Y_COORD+'f'+ x1y5) 

如果是x1y5是变量

的对应值(0或1)

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

提前谢谢! kyril

1 个答案:

答案 0 :(得分:1)

你使用字典:

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)]