2013-07-02 51 views
2

簡單的問題:是否有可能在Python迭代時分配簡寫引用,這樣的(這不工作):的Python:「作爲」關鍵字速記

class SomeClass: 
    class_dict = {0:0,1:1,2:2,3:3} 

newClass = SomeClass() 

for n in newClass.class_dict as thedict: # assigning a shorthand reference "thedict" to newClass.class_dict 
    print(thedict[n]) 

回答

3

我想你想這(迭代使用iteritems()鍵/值對n, o):

class SomeClass: 
    class_dict = {0:0,1:1,2:2,3:3} 

newClass = SomeClass() 

for n, o in newClass.class_dict.iteritems(): 
    print(o) 
+0

這正是我想要的,謝謝。不是我想到的速記,但速記我需要一切。 –

1

另外,如果你想追求原來的想法,你可以簡單地將class_dict分配到一個新的名稱。對字典所做的任何更改都會影響到這兩者,因爲它們實際上是由於別名而導致內存中的字典相同。

例如,

class SomeClass: 
class_dict = {0:0,1:1,2:2,3:3} 

newClass = SomeClass() 

thedict = newClass.class_dict 

for n in thedict: 
    thedict[n] = thedict[n] + 1 
    print(thedict[n]) 

print(newClass.class_dict) 

將輸出

1 
2 
3 
4 
{0: 1, 1: 2, 2: 3, 3: 4}