我在问一个类似的问题,但是用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'的变量引用了一个列表(如数组)类型的值