0
У меня есть следующий код, над которым я работал, но я не могу найти способ подсчитать количество уникальных значений в списке анаграмм. Если я просто распечатаю: print len(anagram)
Получаю полное значение списка, но оно включает в себя дубликаты.Подсчет уникальных значений в списке Python
Я попытался преобразовать список в набор и обратно, чтобы избавиться от дубликатов, но не повезло.
Спасибо!
#import libraries
import urllib, itertools
#import dictionary
scrabble = urllib.urlopen('http://www.puzzlers.org/pub/wordlists/ospd.txt').read().split()
#print the length of the dictionary
print len(scrabble)
#make anagrams from scrabble list
anagrams = [list(g) for k,g in itertools.groupby(sorted(scrabble, key=sorted), key=sorted)]
#print the largest anagram
print "Largest number of anagrams for a word : ", len(max(anagrams, key=len))
print "Largest anagram word and values ", max(anagrams, key=len)
я получил следующее сообщение об ошибке, когда я побежал этот код: TypeError: unhashable тип: 'список' – Andrew
Ач. Вы хотите использовать 'tuple (g)' вместо 'list (g)', так как 'list' нельзя помещать в множества (поскольку они изменяемы). – nneonneo
Спасибо! Это сработало! Он вернул значение 65783, что кажется немного большим, учитывая, что в списке содержится 79339 значений. – Andrew