2

简单的问题:在 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])
4

2 回答 2

3

我想你想要这个(迭代键/值对为n, ousing iteritems()):

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

newClass = SomeClass()

for n, o in newClass.class_dict.iteritems():
    print(o)
于 2013-07-02T02:00:10.673 回答
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}
于 2013-07-02T04:40:49.003 回答