2012-01-01 63 views
0

我在問這個問題,但用python 2.7代替。我知道我是這個問題的提問者,但答案應該不同。這是鏈接。如何在不用Python創建數組的情況下創建變量名?

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

我擡頭數據結構的蟒蛇網站上,但我不知道他們在說什麼。任何幫助或指導表示讚賞!

+3

像你的其他文章中,我發現這個不清楚,你說的是一個關聯數組類型,例如[字典](HTTP數據結構://docs.python .ORG /教程/ datastructures.html#詞典)? – 2012-01-01 01:05:36

+0

這就像我可以參考的唯一ID,以創建無限制實例並自動檢查所有實例。 – Ripspace 2012-01-01 01:08:19

回答

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 
+0

您可能有我正在尋找的答案,但還有一件事。假設我有一個類被分配給x [1],我可以這樣做:x [1] .var = 1,還是有不同的方式來做到這一點? – Ripspace 2012-01-01 01:16:12

+0

請檢查我的編輯。 – gruszczy 2012-01-01 01:18:01

+0

我更感興趣實例化一個類。謝謝! – Ripspace 2012-01-01 01:26:03

-6

你可以做類似如下:

globals()['foo'] = 10 

locals()['foo'] = 10 

然後你就可以在此之後通過其名稱訪問FOO。從你的其他問題來看,似乎你問如何在不使用方括號的情況下創建一個數組(在Python中,通常是一個列表)。

與C/C++,你並不需要聲明一個Python變量的類型,那麼你可以這樣做:

foo = [] 

foo = list() 

其中變量命名爲「富'用列表(如數組)類型引用一個值。

+4

沒有。只是在python的這麼多層次上這是錯誤的。你永遠不會玩當地人或全球。 – 2012-01-01 01:20:39

1

一般來說,您正在查找的數據結構是一個鍵值映射。根據語言或庫的不同,這個結構的名字可能是以下內容:字典,散列表,關聯數組,散列。這些是通用名稱。

在python中,它們被稱爲字典。並用{}創建。而Python中的列表將使用[]創建。

一個基本的例子是這樣的:

a={} 
a[5]='a' 
a[3]=0 
print a 
Output: {3: 0, 5: 'a'} 
相關問題