defの中のdelの扱い方について
pythonを使用しています。
defで定義した関数の中のdelの扱い方がわからないです。
下記のように書いています。
python
1a = [[1,2,3],[2,4,6],[1,3,5],[1,4,9]] 2 3#data…リスト、num…参照したい数字 4def A(data, num): 5 li = [] 6 for i in range(len(data)): 7 if data[i][0] == num: 8 li.append(data[i]) 9 10 for i in range(len(li)): 11 del li[i][0] 12 return li
何度も回すうちにreturnで得られる結果が、
カラのリストになっていってしまって困っています。
追記
. どんなふうに関数Aを呼び出したか
python
1In[1]: 2A(a,1) 3 4In[2]: 5A(a,1)
・どんな実行結果になったか
一回目は、想定していた結果が得られたのですが、
二回目以降は、一回目と同じ結果が得られません。
python
1Out[1]: 2[[2, 3], [3, 5], [4,9]] 3 4Out[2]: 5[]
・どのような結果を期待していたか
何回繰り返しても同じ結果が得られることが望ましいです。
python
1Out[1]: 2[[2, 3], [3, 5], [4,9]] 3 4Out[2]: 5[[2, 3], [3, 5], [4,9]]
・どんな原因があると現時点で推測しているか
「del」の使い方や仕様がわかっていないのですが、
二回目以降の処理にかかわっているのだと思います。
具体性が全く足りません。
・どんなふうに関数Aを呼び出したか
・どんな実行結果になったか (何度も回すうちに…は不適。何回回して、どのように実行結果が変化して、空になったのか。そもそも何を何度も回したのか。)
・どのような結果を期待していたか
・どんな原因があると現時点で推測しているか

回答3件
あなたの回答
tips
プレビュー