Python Forum
deleting select items from a list
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
deleting select items from a list
#11
Is there a reason you can't use lazy sequences? It would really help if you showed code for what you're doing. It's difficult to discuss hypothetical things.
Reply
#12
(Oct-10-2021, 05:00 AM)ndc85430 Wrote: Is there a reason you can't use lazy sequences? It would really help if you showed code for what you're doing. It's difficult to discuss hypothetical things.

this is about doing lazy evaluation, for me. the code i have is big and complicated due to so much other stuff in it. i have no simple code that gets to the root of the matter, i have some potential directions to go. iterating the list in reverse, as was suggested is one of many. it could be done many ways. one of the ways could include for x in range(len(the_list)-1,-1,-1): (i like variable name x, think: index). if i delete the_list[x] inside the body of this for loop, it does not affect the iteration as the range iterator is now independent of the actual list and x only moves to non-mutated parts of the list. another approach i am considering is: instead of deleting the item in the list, store None in its place and change the code that uses the list to evaluate the list by treating None as absent data. and, sure, i could do that as its own iterator in many cases.

i did not mention these ideas up front because i did not want to have any bias by this in the ideas others might offer. instead of discussing limited to my ideas, i want to see if there are other ideas and if any of the others might be treated as more significant.
Tradition is peer pressure from dead people

What do you call someone who speaks three languages? Trilingual. Two languages? Bilingual. One language? American.
Reply
#13
(Oct-10-2021, 06:11 PM)Skaperen Wrote: one of the ways could include for x in range(len(the_list)-1,-1,-1): (i like variable name x, think: index). if i delete the_list[x] inside the body of this for loop
Yes to make code more ugly and less readable could do that 🧺
names = ["Alice", "Bob", "Andrew", "Charlie"]
for item in range(len(names)-1,-1,-1):
    if not names[item].startswith('A'):
        del names[item]
print(names)
Output:
['Alice', 'Andrew']
It's faster than remove() solution,but still slower than:
names = ["Alice", "Bob", "Andrew", "Charlie"]
names = [name for name in names if name.startswith('A')]
print(names)
Output:
['Alice', 'Andrew']
If think in place is cool,so is there a way with this the last one.
names = ["Alice", "Bob", "Andrew", "Charlie"]
print(id(names))
names[:] = [name for name in names if name.startswith('A')]
print(names)
print(id(names))
Output:
2496125597184 ['Alice', 'Andrew'] 2496125597184
Skaperen likes this post
Reply
#14
tusen takk!

in a couple cases i do need to really do it in place because the code using the list called the code that will change the list. of course, that is not a proper way to do things but it is the only context to avoid the time (testing everything) to re-implement a big script.
Tradition is peer pressure from dead people

What do you call someone who speaks three languages? Trilingual. Two languages? Bilingual. One language? American.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  How to parse and group hierarchical list items from an unindented string in Python? ann23fr 0 179 Mar-27-2024, 01:16 PM
Last Post: ann23fr
  Why do I have to repeat items in list slices in order to make this work? Pythonica 7 1,321 May-22-2023, 10:39 PM
Last Post: ICanIBB
  Finding combinations of list of items (30 or so) LynnS 1 871 Jan-25-2023, 02:57 PM
Last Post: deanhystad
  For Word, Count in List (Counts.Items()) new_coder_231013 6 2,575 Jul-21-2022, 02:51 PM
Last Post: new_coder_231013
  How to get list of exactly 10 items? Mark17 1 2,504 May-26-2022, 01:37 PM
Last Post: Mark17
  select Eof extension files based on text list of filenames with if condition RolanRoll 1 1,509 Apr-04-2022, 09:29 PM
Last Post: Larz60+
  how to assign items from a list to a dictionary CompleteNewb 3 1,565 Mar-19-2022, 01:25 AM
Last Post: deanhystad
  Reading list items without brackets and quotes jesse68 6 4,618 Jan-14-2022, 07:07 PM
Last Post: jesse68
Question How to gather specific second-level items from a list chatguy 2 1,545 Dec-17-2021, 05:05 PM
Last Post: chatguy
  Getting All Items From A List knight2000 4 2,388 Sep-25-2021, 12:56 AM
Last Post: knight2000

Forum Jump:

User Panel Messages

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