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, o使用してキーと値のペアを繰り返します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 に答える