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
Post a Comment