delete python list in the correct order -


i tried delete order: 11,12,13,21,22,23,31,32,33 , stay empty list. @ begining tried regular deletion, understood must use int deletion , can't object so, started use enumerate function saw problem. delete not whole list part of it. there way delete in order?

b = [[['11'],['12'],['13']],[['21'],['22'],['23']],[['31'],['32'],['33']]]  i,index in enumerate(b):     j,jindex in enumerate(index):         print(b)         jindex = jindex[j+1:]     index = index[i+1:] print(b)  print('\nnew try\n\n')  b = [[['11'],['12'],['13']],[['21'],['22'],['23']],[['31'],['32'],['33']]] i,index in enumerate(b):     j,jindex in enumerate(index):         print(b)         del jindex[j::]     del b[i::] print(b)  print('\nnew try\n\n')  b = [[['11'],['12'],['13']],[['21'],['22'],['23']],[['31'],['32'],['33']]]  i,index in enumerate(b):     j,jindex in enumerate(index):         print(b)         del jindex[j]     del index[i] print(b)  print('\nnew try\n\n')  b = [[['11'],['12'],['13']],[['21'],['22'],['23']],[['31'],['32'],['33']]]  i,index in enumerate(b):     j,jindex in enumerate(index):         print(b)         del b[i][j]     del b[i] print(b) 

my output:

[[['11'], ['12'], ['13']], [['21'], ['22'], ['23']], [['31'], ['32'], ['33']]] [[['11'], ['12'], ['13']], [['21'], ['22'], ['23']], [['31'], ['32'], ['33']]] [[['11'], ['12'], ['13']], [['21'], ['22'], ['23']], [['31'], ['32'], ['33']]] [[['11'], ['12'], ['13']], [['21'], ['22'], ['23']], [['31'], ['32'], ['33']]] [[['11'], ['12'], ['13']], [['21'], ['22'], ['23']], [['31'], ['32'], ['33']]] [[['11'], ['12'], ['13']], [['21'], ['22'], ['23']], [['31'], ['32'], ['33']]] [[['11'], ['12'], ['13']], [['21'], ['22'], ['23']], [['31'], ['32'], ['33']]] [[['11'], ['12'], ['13']], [['21'], ['22'], ['23']], [['31'], ['32'], ['33']]] [[['11'], ['12'], ['13']], [['21'], ['22'], ['23']], [['31'], ['32'], ['33']]] [[['11'], ['12'], ['13']], [['21'], ['22'], ['23']], [['31'], ['32'], ['33']]]  new try   [[['11'], ['12'], ['13']], [['21'], ['22'], ['23']], [['31'], ['32'], ['33']]] [[[], ['12'], ['13']], [['21'], ['22'], ['23']], [['31'], ['32'], ['33']]] [[[], ['12'], ['13']], [['21'], ['22'], ['23']], [['31'], ['32'], ['33']]] []  new try   [[['11'], ['12'], ['13']], [['21'], ['22'], ['23']], [['31'], ['32'], ['33']]] [[[], ['12'], ['13']], [['21'], ['22'], ['23']], [['31'], ['32'], ['33']]] traceback (most recent call last):   file "/users/asaf/pycharmprojects/first/openurl.py", line 28, in <module>     del jindex[j] indexerror: list assignment index out of range  process finished exit code 1 

that result i'am looking for:

[[['12'],['13']],[['21'],['22'],['23']],[['31'],['32'],['33']]] [[['13']],[['21'],['22'],['23']],[['31'],['32'],['33']]] [[['21'],['22'],['23']],[['31'],['32'],['33']]] [[['22'],['23']],[['31'],['32'],['33']]] [[['23']],[['31'],['32'],['33']]] [[['31'],['32'],['33']]] [[['32'],['33']]] [[['33']]] [[]] 

the issue iterating on list while modifying it. cause exact problem encountering. rather, have have iterate on indices (more classic-for-loop) , modify list. notice, though, have take account index going deleting isn't same index iterate over. rather, deleting first element of sublist, , sublist in outer-loop (except last iteration).

>>> b = [[['11'],['12'],['13']],[['21'],['22'],['23']],[['31'],['32'],['33']]] >>> sublength in [len(sub) sub in b]: ...   _ in range(sublength): ...     print(b) ...     del b[0][0] ...   if len(b) > 1: # or else you'll end [] ...     del b[0] ...  [[['11'], ['12'], ['13']], [['21'], ['22'], ['23']], [['31'], ['32'], ['33']]] [[['12'], ['13']], [['21'], ['22'], ['23']], [['31'], ['32'], ['33']]] [[['13']], [['21'], ['22'], ['23']], [['31'], ['32'], ['33']]] [[['21'], ['22'], ['23']], [['31'], ['32'], ['33']]] [[['22'], ['23']], [['31'], ['32'], ['33']]] [[['23']], [['31'], ['32'], ['33']]] [[['31'], ['32'], ['33']]] [[['32'], ['33']]] [[['33']]] >>> print(b) [[]] >>>  

Comments