x = raw_input()
words = x.split()
words.sort()
for word in words:
print(word.lower())
这是一段代码,它输入一个句子并将其单词排序到字典顺序。在输出中我还想打印该句子中唯一单词的数量。我该怎么做?
答案 0 :(得分:1)
尝试
x = raw_input()
words = x.split()
words.sort()
for word in words:
print(word.lower())
print(len(set(words)))
正如在评论中如此愉快地指出的那样,没有任何解释,所以在这里。 set()
方法从列表中生成一个集合。集合只能有唯一的条目,因此len()
方法将提供唯一集合的长度。在评论中也指出,一个集合具有len()
方法,因此不需要像以前的答案那样将集合转换为列表。
答案 1 :(得分:1)
您可以使用Counter
from collections import Counter
words = ["foo", "bar", "bar"]
counts = Counter(words)
print counts
# Counter({"foo": 1, "bar": 2})
unique_words = [word for word in counts if counts[word] == 1]
print unique_words
# ["foo"]
Counter是用于计算可哈希对象的dict子类。它是一个无序集合,其中元素存储为字典键,它们的计数存储为字典值。
答案 2 :(得分:0)
如果您不想导入任何外部模块。你可以精确地使用'set()':
unique_num = len(set(words))
print unique_num