a = [1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7]
for remove_one in a:
a.remove(1)
print(a)
[2, 3, 4, 5, 6, 7]
All 1s are removed here
a = [1, 2, 1, 1, 1, 1, 1, 1, 1, 1]
for remove_one in a:
a.remove(1)
print(a)
[2, 1, 1, 1, 1]
Why are there a few more at the back of the ship?
python list remove
If you do remove (value) in the list, If there are multiple values, only the first value is deleted.
The for statement replaces each element with a variable sequentially in the list.
The for statement ends after substituting the last element of the list.
But the above example is a really exquisite trick. Haha I think it will be a good study material for the list.
Example 1
a = [1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7]
for remove_one in a:
a.remove(1)
from the one remove (It's like, for in a, but it looks like :)
.At first, one would be substituted.
That 1 is removed by remove, from the lista
Then the next element (2nd) will be substituted for remove_one
The first one is gone
At the time of the second performance, a is
[2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7] It'll be like this.
Remove_one contains the second element, 1.
When the remove(1) command is executed,
Out of the remaining 1, the first one is deleted again.
a becomes [2, 3, 1, 4, 1, 5, 1, 6, 1, 7].
(Remove_one contains the third element, 1.)
If repeated this way,
Well, anyway, when I went all the way to the end of the list, remove (1) continued to be carried out.
Eventually a = [2, 3, 4, 5, 6, 7]
It goes like this.
a The length of a was originally 12, but it was reduced to 6. Remember.
But the code below is different.
Example 2
a = [1, 2, 1, 1, 1, 1, 1, 1, 1, 1]
for remove_one in a:
a.remove(1)
It will work as explained above.
This time, a is 10 in length and 1 in number is 9.
If it's as intended, I'll have to turn 10 times
The remove command keeps decreasing the length of a.
First: [1, 2, 1, 1, 1, 1, 1, 1, 1, 1]
After performing the first for statement: [2, 1, 1, 1, 1, 1, 1, 1, 1]
After performing the 2nd for statement: [2, 1, 1, 1, 1, 1, 1, 1]
After performing the 3rd for statement: [2, 1, 1, 1, 1, 1, 1]
After performing the 4th for statement: [2, 1, 1, 1, 1, 1]
After performing the 5th for statement: [2, 1, 1, 1, 1]
Now, shall we do the 6th remove? No, the for statement is aborted.
Currently, the size of list a is 5, but we can't get the next element.
That's why the removal was stopped after 5 times.
It's kind of lacking...
Add code to remove all desired values from the list.
Please keep that in mind ^
^# I will remove all BMWs. If you just turn the for statement, an error such as the example number 2 above will occur.
carList = ['BMW', 'BENZ', 'BMW', 'BMW', 'BMW', 'BMW', 'BMW', 'BMW', 'AUDI', 'BMW', 'BMW']
# Errors
# # for car in carList:
# # if car == 'BMW':
# # carList.remove(car)
# # print(carList)
# # ['BENZ', 'BMW', 'BMW', 'AUDI', 'BMW', 'BMW']
# the summit
count = carList.count('BMW')
for _ in range(count):
carList.remove('BMW')
print(carList)
# # ['BENZ', 'AUDI']
Β© 2024 OneMinuteCode. All rights reserved.