python リスト 初期化
python リストの罠。
配列の初期化を以下のように行うとidが全部同じになってしまう。
結果、変更したくない部分まで変更される。
//コード a = [[]]*3 for i in range(3): print (id(a[i])) a[0].append("Hello") for i in range(3): print (a[i]) //実行結果 4570663368 4570663368 4570663368 ['Hello'] ['Hello'] ['Hello']
配列の初期化方法を変える。
//コード a = [[] for i in range(3)] //変更 for i in range(3): print (id(a[i])) a[0].append("Hello") for i in range(3): print (a[i]) //実行結果 4570519624 4570519432 4570519176 ['Hello'] [] []
神。