As you can see, i'm trying to delete the word in a list whose length is 1 or 2, but "P" and "ye" can't be found and removed!
Asked
Active
Viewed 41 times
-4
-
you're modifying the list as y ou iterate it. – Neil G Sep 26 '16 at 09:56
-
1Possible duplicate of [Remove items from a list while iterating in Python](http://stackoverflow.com/questions/1207406/remove-items-from-a-list-while-iterating-in-python) – SiHa Sep 26 '16 at 10:14
2 Answers
0
Check out this code:
li = ['of','in','a','bb','abbb']
lii = []
for i in li:
j = len(i)
if j == 1 or j == 2:
lii.append(i)
for i in lii:
li.remove(i)
print li
Output:
['abbb']

User_Targaryen
- 4,125
- 4
- 30
- 51
0
You can't modify list while you iterate through it. But you can do something like this:
L = ['of', 'P', 'representig', 'the', 'subs', 'et', 'ye', 'ti']
result = [i for i in L if len(i) != 1 and len(i) != 2]

zipa
- 27,316
- 6
- 40
- 58