首页 > 解决方案 > 在python中只计算一次列表中的元素而不重复

问题描述

我的输入应该是一个整数。根据整数值,我必须在列表中给出字符串..我的代码是:

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

我应该怎么办?

标签: pythonpython-2.7

解决方案


你太接近了!

for j in set(words):
    print words.count(j),

请注意,由于您只报告每个单词的计数一次,因此您失去了每个计数与其所代表的单词之间的紧密关联。两者都setCounter失去该排序。


推荐阅读