1

いくつかの数値を生成していますが、生成するたびにリストに保存したいと考えています。

コード:

for m in plaintexts:
    H = V = []

    for k in xrange(0, 256):
        di = m[i_temp1 : i_temp2]
        entry = int(sBox[int(di, 16) ^ k])
        print entry
        V.append(entry)
        print V
        H.append(bin(entry).count("1"))
    tempV.append(V)
    tempH.append(H)

残念ながら、私が得るものはかなり異なります:

89
[89]
250
[89, 4, 250]
240
[89, 4, 250, 6, 240]
71
[89, 4, 250, 6, 240, 4, 71]
130
[89, 4, 250, 6, 240, 4, 71, 4, 130]
202
[89, 4, 250, 6, 240, 4, 71, 4, 130, 2, 202]
125
[89, 4, 250, 6, 240, 4, 71, 4, 130, 2, 202, 4, 125]

私が計算した値は追加されていますが、計算された各値の間に常に乱数が追加されます。これらのランダム値は常に 2 ~ 8 です。

なんで?

4

2 に答える 2

3

HV同じリストです。それぞれに個別のリストを作成します。

H, V = [], []

この行はリストを1 つH = V = []だけ作成し、それを と の両方に割り当てます。HV

>>> H = V = []
>>> H is V
True
>>> H.append(42)
>>> V
[42]
>>> H, V = [], []
>>> H is V
False
>>> H.append(42)
>>> V
[]
于 2013-04-26T20:43:06.153 に答える