我问的问题与此类似,但是用python 2.7代替。我知道我是问题的同一位提问者,但答案应该是不同的。这是链接。
How to make a variable name without creating an array in C++?
我在python网站上查找了Data Structures,但我不知道他们在谈论什么。任何帮助或指导赞赏!
答案 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'的变量引用带有列表(如数组)类型的值。