仅返回单个字符串的出现次数

时间:2016-04-09 17:28:24

标签: python

我试图只返回字符串列表中单个字符的出现次数。所以下面的代码

words = ['man','map','human']
[letter for word in words for letter in word]

给出了这个输出:

['m', 'a', 'n', 'm', 'a', 'p', 'h', 'u', 'm', 'a', 'n']

当我使用set()方法时,输出正如我所希望的那样,如下所示

words = ['man','map','human']
set([letter for word in words for letter in word ])

输出:

{'a', 'h', 'm', 'n', 'p', 'u'}

但我试图解决的问题的指示要求我不使用集合。有人可以用另一种方法来获得所需的输出。我很感激你的时间。

2 个答案:

答案 0 :(得分:1)

好吧,不使用set不是好主意,但以防万一,

尝试:

unique_list = []

words = ['man', 'map', 'human']

[unique_list.append(letter) for word in words for letter in word if letter not in unique_list]

print(unique_list)

将输出:

['m', 'a', 'n', 'p', 'h', 'u']

如果你想排序,unique_list.sort()会发出

['a', 'h', 'm', 'n', 'p', 'u']

答案 1 :(得分:0)

list = ['m', 'a', 'n', 'm', 'a', 'p', 'h', 'u', 'm', 'a', 'n']
withoutduplicates = [(list[i]) for i in range (0,len(list)) if list[i] not in list[:i]]
print withoutduplicates