Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Spaceship
#6
When iterating over a list. Then remove item from same list. Will cause next item to be skip in list.
Example. Try to remove 2 and 3. But 3 will never get check.
mylist = [1, 2, 3, 4, 5]
for i in mylist:
    print(i)
    if i in [2, 3]:
        mylist.remove(i)

print(mylist)
You have two options.
You can copy the list or you can create a list for deletion.
mylist = [1, 2, 3, 4, 5]
removelist = []
for i in mylist:
    print(i)
    if i in [2, 3]:
        removelist.append(i)

for r in removelist:
    mylist.remove(r)

print(mylist)
mylist = [1, 2, 3, 4, 5]
# shallow copy
for i in mylist[:]:
    print(i)
    if i in [2, 3]:
        mylist.remove(i)

print(mylist)
99 percent of computer problems exists between chair and keyboard.
Reply


Messages In This Thread
Spaceship - by abscorpy - May-06-2021, 07:05 PM
RE: Spaceship - by BashBedlam - May-06-2021, 10:16 PM
RE: Spaceship - by abscorpy - May-11-2021, 09:08 PM
RE: Spaceship - by metulburr - May-08-2021, 11:37 PM
RE: Spaceship - by BashBedlam - May-12-2021, 02:26 PM
RE: Spaceship - by Windspar - May-15-2021, 01:49 PM
RE: Spaceship - by abscorpy - May-22-2021, 11:25 AM
RE: Spaceship - by SheeppOSU - May-24-2021, 09:56 PM
RE: Spaceship - by BashBedlam - Jun-01-2021, 02:24 PM
RE: Spaceship - by abscorpy - Jul-23-2021, 09:25 AM
RE: Spaceship - by metulburr - Jul-23-2021, 07:00 PM
RE: Spaceship - by abscorpy - Jul-26-2021, 07:15 AM
RE: Spaceship - by SheeppOSU - Aug-06-2021, 07:53 PM
RE: Spaceship - by abscorpy - Aug-07-2021, 11:25 PM

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020