doug shawhan wrote: > I have a series of lists to compare with a list of exclusionary terms. > > > > junkList =["interchange", "ifferen", "thru"] > > The comparison lists have one or more elements, which may or may not > contain the junkList elements somewhere within: > > l = ["My skull hurts", "Drive the thruway", "Interchangability is not my > forte"] > > ... output would be > > ["My skull hurts"] > > I have used list comprehension to match complete elements, how can I do > a partial match? > > def removeJunk(reply, junkList): > return [x for x in reply if x not in junkList] > > It would be so much prettier than searching through each list element > for each term - I tend to get lost in a maze of twisty corridors, all alike. > > Thanks! > > Dunno if the performance of this solution is good and if it is more readable then RegExps, but here is LC: [x for x in l if not [j for j in junkList if x.lower().find(j) > -1]]
>>> l = ["My skull hurts", "Drive the thruway", "Interchangability is not my forte"] >>> junkList =["interchange", "ifferen", "thru"] >>> [x for x in l if not [j for j in junkList if x.lower().find(j) > -1]] ['My skull hurts', 'Interchangability is not my forte'] ^ Is there an "e" missing? Because I don't like RegExps! ;-) HTH, Wolfram _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor