(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