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



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

如何使一个变量的名称没有创建一个数组在c++ ?

我在python网站上查了数据结构,但我不知道他们在说什么。任何帮助或指导感谢!

如果您正在寻找与 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

一般来说,您正在寻找的数据结构是键值映射。根据语言或库的不同,这个结构的名称可能是以下其中之一:字典、哈希表、关联数组、哈希。这些都是常用的名字。

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

一个基本的例子是:

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

您可以这样做:

globals()['foo'] = 10

locals()['foo'] = 10

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

与C/c++不同,您不需要声明Python变量的类型,因此您可以这样做:

foo = []

foo = list()

其中名为'foo'的变量引用了一个列表(如数组)类型的值

最新更新