Is there a unique method in python to unique a list?
Token Type
typetoken at gmail.com
Sun Sep 9 02:44:59 EDT 2012
> Try backdenting that statement. You're currently doing it at every
>
> iteration of the loop - that's why it's so much slower.
Thanks. I works now.
>>> def average_polysemy(pos):
synset_list = list(wn.all_synsets(pos))
sense_number = 0
lemma_list = []
for synset in synset_list:
lemma_list.extend(synset.lemma_names)
for lemma in list(set(lemma_list)):
sense_number_new = len(wn.synsets(lemma, pos))
sense_number = sense_number + sense_number_new
return sense_number/len(set(lemma_list))
>>> average_polysemy('n')
1
> But you'll probably find it better to work with the set directly,
>
> instead of uniquifying a list as a separate operation.
Yes, the following second methods still runs faster if I don't give a separate variable name to list(set(lemma_list)). Why will this happen?
>>> def average_polysemy(pos):
synset_list = list(wn.all_synsets(pos))
sense_number = 0
lemma_list = []
for synset in synset_list:
lemma_list.extend(synset.lemma_names)
for lemma in list(set(lemma_list)):
sense_number_new = len(wn.synsets(lemma, pos))
sense_number = sense_number + sense_number_new
return sense_number/len(set(lemma_list))
>>> average_polysemy('n')
1
More information about the Python-list
mailing list