I know it is maybe a duplicate question. But due to my poor English expression,I don't know how to search it.
Recently I find a problem in python list.remove,Here is the code:
data = []
for i in range(1000):
Tempdict = {}
Tempdict["code"] = str(i)
data.append(Tempdict)
codes_to_keep = ("1","8","80")
for i in data:
if not i["code"] in codes_to_keep:
data.remove(i)
print(data) #{"code":"1","code":"3","code":"5".......},it will keep odd number leave.
Or if I use this to delete number which need to be de:
data = []
for i in range(1000):
Tempdict = {}
Tempdict["code"] = str(i)
data.append(Tempdict)
codes_to_delete = ("1","8","80")
for i in data:
if i["code"] in codes_to_delete:
data.remove(i)
print(data) #{"code":"0","code":"2"xxx},This is what I expected
What happened?