运行时变量创建Python 3.1.2

时间:2011-01-28 23:04:26

标签: python

如何根据初始用户输入创建一个在运行时创建一定数量的唯一命名变量的函数?例如,用户输入尺寸400 x 400,(x和y),所以我希望该函数创建1600(400 * 400)个变量,每个变量代表网格400上的每个不同点400。

2 个答案:

答案 0 :(得分:2)

你真正想要的是数组,列表或400 * 400点的元组。

因此,创建一个类,在每个点存储所需的信息,然后创建这些类对象的大小为400 * 400的列表。

你可以这样做:

width = 400
height = 400
m = [[0]*width for i in range(height)]

然后在您的字段中访问点,如下所示:

m[123][105] = 7

将点(123,105)设定为7。

如果您想在每个点存储多个数字,请创建一个类似我建议的类:

class MyClass:
    def __init__(self, a, b, c):
        self.a = a
        self.b = b
        self.c = c

然后创建“MyClass”对象列表,如下所示:

m = [[MyClass(0,0,0) for i in range(400)] for j in range(400)]

答案 1 :(得分:1)

您确定需要为网格上的每个点创建一个不同的变量吗?如果有许多点的默认值为0,则不要创建一堆0的数组。而是创建一个空字典D = {}。将数据存储为D[(x,y)] = anything。按D.get((x,y), 0)访问您的数据。 D.get(key, default value)这节省了记忆。

不过,400 * 400不是1600.而是160,000