list comparison help?

Wojciech Muła wojciech_mula at poczta.null.onet.pl.invalid
Sat Apr 14 05:49:47 EDT 2007


Dropkick Punt wrote:
>>>> prefixes = [ "the", "this", "that", "da", "d", "is", "are", "r", "you", "u"]
> 
> And I have a string, that I split() into a list.
> 
>>>> sentence = "what the blazes is this"
>>>> sentence = sentence.split()
> 
> Now I want to strip the sentence of all words in the prefix list. 
> 
> I tried this method:
> 
>>>> for x in prefixes:
> ...   	  if sentence.index(x):
> ...             del sentence[sentence.index(x)]
> 
> 
> This raises, the error: 
> 
> Traceback (most recent call last):
>   File "<stdin>", line 3, in ?
> ValueError: list.index(x): x not in list
> 
> This puzzles me, because if x isn't in the list, the subroutine shouldn't attempt to delete it
> from the list, so I'm not sure why it's complaining.

list.index raised ValueError, see error message.

> Can anybody explain this to me, &/or show me a better way to do it?

prefixes = set(prefixes)
sentence = [word for word in sentence.split() if word not in prefixes]

w.



More information about the Python-list mailing list