我的输入应为整数。基于整数值,我必须在列表中输入字符串。我的代码是:
words = []
i = int(raw_input())
for i in range(0,i):
j= str(raw_input())
words.append(j)
unique_word_count = len(set(words))
print unique_word_count
for j in words:
print words.count(j),
而我的输入是
4
bcdef
abcdefg
bcde
bcdef
输出为
3
2 1 1 2
但是我需要这样的输出:
3
2 1 1
我该怎么办?
答案 0 :(得分:1)
import collections
print collections.Counter(words)
对于您的输入,您将获得:
Counter({'bcdef': 2, 'bcde': 1, 'abcdefg': 1})
答案 1 :(得分:1)
您太近了!
for j in set(words):
print words.count(j),
请注意,由于您只报告一次每个单词的计数,因此,您已经失去了每个计数与它所代表的单词之间的紧密联系。 set
和Counter
都将失去该顺序。
答案 2 :(得分:0)
您忘记了在第二个循环中将列表转换为集合:
for j in set(words):
print words.count(j)
答案 3 :(得分:0)
您应该使用from collections import Counter
和
words = []
i = int(input())
for index in range(0,i):
j= input()
words.append(j)
unique_word_count = Counter(words)
print(unique_word_count)
其输出每个单词的数量