私はそれを手に入れません。リストに追加するときに、正しく追加しないときの奇妙な振る舞い
[email protected] home]# python g.py -r 192.168.20.1 -p 80 -a 3
20
21
['192', '168', 21, '1']
21
22
['192', '168', 22, '1']
22
23
['192', '168', 23, '1']
[['192', '168', 23, '1'], ['192', '168', 23, '1'], ['192', '168', 23, '1']]
あなたはすべてをtesttが右いっぱいGETTしないリストを除いて正確である見ることができるように:私はそれを実行すると、それは、この出力を返します
def startscan(rangeip,ports,cblocks):
pool = ThreadPool(processes=MAX_THREADS)
results = []
testt = []
#print(rangeip)
#print(ports)
#print(cblocks)
for ii in range(cblocks):
print(rangeip[2])
rangeip[2] = int(rangeip[2]) + 1
print(rangeip[2])
print(rangeip)
testt.append(rangeip)
print(testt)
...以下の私のコードを参照してください。同じ値の3倍の値を示します。以下のような適切な結果を出力する必要があります
[['192', '168', 21, '1'], ['192', '168', 22, '1'], ['192', '168', 23, '1']]
私は間違っていますか?非常に奇妙なことが起こっているようです。
あなたは 'ttest'リストに同じオブジェクト' rangeip'を追加していますので、 'ttest'のなかにはこのオブジェクトが参照する現在の値を格納する' rangeip'の複製だけがあります –
簡単に ' testt.append(rangeip [:]) ' – TigerhawkT3
私はあなたの答えを得るが、なぜそれが印刷で動作し、付加されていない。それは私が理解できない奇妙なことです。 –