如何在不在Python中创建数组的情况下创建变量名?

时间:2012-01-01 01:00:15

标签: python data-structures

我问的问题与此类似,但是用python 2.7代替。我知道我是问题的同一位提问者,但答案应该是不同的。这是链接。

How to make a variable name without creating an array in C++?

我在python网站上查找了Data Structures,但我不知道他们在谈论什么。任何帮助或指导赞赏!

3 个答案:

答案 0 :(得分:3)

如果您正在寻找与 C ++ 中的std::map类似的结构,则应使用dict。它是一个字典,可以将任何可哈希的对象作为键(字符串,元组,整数)。例如:

x = dict()
x['a'] = 5
x[6] = MyObject()

正如您所看到的,这比std::map更强大,因为键也可能有不同的类型和值。

如果要分配课程,您也可以这样做:

class MyClass:
    pass

x[1] = MyClass

但也许您有兴趣拥有这个班级的实例?这也是可能的(在同一个dict上):

x[1] = MyClass() # this creates an instance

答案 1 :(得分:1)

通常,您要查找的数据结构是键值映射。根据语言或库,此结构的名称可能是以下内容:字典,哈希表,关联数组,哈希。这些是常见的名字。

在python中,它们被称为字典。并使用{}创建。而python中的列表将使用[]创建。

一个基本的例子是:

a={}
a[5]='a'
a[3]=0
print a
Output: {3: 0, 5: 'a'}

答案 2 :(得分:-6)

您可以执行以下操作:

globals()['foo'] = 10

locals()['foo'] = 10

之后你可以通过它的名字访问foo。从你的另一个问题来看,似乎你问的是如何在不使用方括号的情况下创建一个数组(在Python中,它通常是一个列表)。

与C / C ++不同,您不需要声明Python变量的类型,因此您可以执行以下操作:

foo = []

foo = list()

名为'foo'的变量引用带有列表(如数组)类型的值。