Python Forum
Noob Alert! Wrong result using loop and if statemnent
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Noob Alert! Wrong result using loop and if statemnent
#2
If you modify an object while iterating over it, it can cause problems.

Either iterate over a copy of it, or copy the data you do need and don't copy the rest. Examples:

Iterate over a copy:
nr = 9
my_list = [0,5,6,7,6,9,9,1,9]
 
for i in my_list[:]:
    if i is not nr:
        my_list.remove(i)
print(my_list)
Pull out the data you want, and overwrite the old reference
nr = 9
my_list = [0,5,6,7,6,9,9,1,9]
 
my_list = [x for x in my_list if x == nr]
print(my_list)
GJG likes this post
Reply


Messages In This Thread
RE: Noob Alert! Wrong result using loop and if statemnent - by bowlofred - Dec-18-2020, 09:25 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  [ESP32 Micropython]Total noob here, I don't understand why this while loop won't run. wh33t 9 4,078 Feb-28-2023, 07:00 PM
Last Post: buran
  Am I wrong or is Udemy wrong? String Slicing! Mavoz 3 5,421 Nov-05-2022, 11:33 AM
Last Post: Mavoz
  Noob here. Random quiz program. Using a while loop function and alot of conditionals. monkeydesu 6 4,488 Sep-07-2022, 02:01 AM
Last Post: kaega2
  Code to check folder and sub folders for new file and alert fioranosnake 2 3,174 Jan-06-2022, 05:03 PM
Last Post: deanhystad
  Running A Loop Until You See A Particular Result knight2000 6 35,194 Sep-04-2021, 08:55 AM
Last Post: knight2000
  python gives wrong string length and wrong character thienson30 2 4,181 Oct-15-2019, 08:54 PM
Last Post: Gribouillis
  List comprehensions-Wrong result RavCOder 4 3,258 Oct-08-2019, 10:16 AM
Last Post: RavCOder
  What Does This Part of Close Alert Code Mean? digitalmatic7 2 3,377 Feb-13-2018, 03:48 AM
Last Post: digitalmatic7
  boolean result of loop Skaperen 19 14,551 Apr-03-2017, 12:55 AM
Last Post: ichabod801

Forum Jump:

User Panel Messages

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