This is a follow-up on my previous question for removing elements. Below is the code I am currently using. I am removing the elements at the end of the outer loop. The data structure goes along this:
[ ['123123',[2019-2-18', 'transaction text', 'amount'], v ['123123',[2019-2-18', 'transaction text', 'amount'], ['123123',[2019-2-18', 'transaction text', 'amount'] ] The 2nd column where the transaction text I am modifying the content and using the end result of the built-up words as the string match as you will see in the code. This is all working fine. The last loop in the code I am trying to delete the elements in reverse order. This doesn't work. The length of the list reduces by 1. When it should have reduced by 42. Is the logic wrong? This is in Python 3.6 under windows 10. unknown_transactions.sort(key=lambda x: x[2]) while True: # re-initialise each time the current transaction text has been processed. for row in unknown_transactions: # remove common words from transactions which are not required. Such as 'WITHDRAWAL' and 'DEPOSIT'. line = regex_transaction(row[2]) # If the common words are not found, return a null and do not modify the transaction description. if line != '': # not a null string # now find unique string and add it to the compare_transactions list object. words = line.split() print ('List length:', len(unknown_transactions)) word = '' for i, v in enumerate(words, start=1): word = ' '.join(words[:i]) print (word) answer = input('Use word y, otherwise any other key continues...') if answer != 'y': continue # end if # end for # now loop through the unknown transactions and copy to transaction dictionary delete_transactions = [] for e, v in enumerate (unknown_transactions): if word in unknown_transactions[e][2]: if not word in transaction: transaction[word] = unknown_transactions else: transaction[word].append(unknown_transactions) # end if delete_transactions.append (e) # end if # end for print ('number of elements to remove:', len(delete_transactions)) for del_element in reversed(delete_transactions): unknown_transactions.pop(del_element) # end if # end for if len(unknown_transactions) == 0: break # end if # end while _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor