I have a string of letters as input.
input:
my_str = 'soumendra_in_stackoverflow'
我想要以下输出。其中所有元音字母应与它们在字典中的对应计数一起打印。
所需输出:
{'a': 2, 'e': 2, 'i': 1, 'o': 3, 'u': 1}
为此,我编写了以下程序:
对于这个问题,我编写了以下程序:
ans_dict = {}
for letter in my_str:
if letter in ['a', 'e', 'i', 'o', 'u']:
ans_dict[letter] = ans_dict.get(letter, 0) + 1
print(ans_dict)
它有效。然而,如何在单行中编写相同的逻辑(可能使用字典推导),而不使用collections.Counter
?
我尝试了这个,但是它失败了。
{x: + 1 for x in a if x in ['a', 'e', 'i', 'o', 'u'] }
Counter
?它看起来是最好的工具。虽然你可以使用字典推导完成,但结果是你需要对字符串进行五次迭代,使其变得不那么高效。 - Willem Van Onsemin
运算符,速度会更快。 - N Chauhan