从这个答案中,我了解了如何使用map
来计算字符串中任何字符的出现次数,
这是我的代码,它计算字符串中任何元音的出现,
name = "maverick dean"
vowels = 'aeiou'
x = list(map(name.lower().count, 'aeiou'))
如您所见,我使用列表将map
的每个值放在list
中。
哪个给出此输出,
[2, 2, 1, 0, 0]
我的愿望输出是
[ "a:2", "e:2", "i:1", "o:0", "u:0" ]
现在我知道我可以使用for
循环来执行此操作,但是还有其他方法可以直接映射x
的输出以使其与实际的元音一起显示吗?
答案 0 :(得分:2)
您可以为此使用lambda function:
x = list(map(lambda v: "{}:{}".format(v, name.lower().count(v)), vowels))
print(x)
# ['a:2', 'e:2', 'i:1', 'o:0', 'u:0']
答案 1 :(得分:1)
您可以使用列表理解
x = ["%s:%d" % (letter, name.lower().count(letter)) for letter in vowels]
或者您甚至可以使用zip压缩到原始列表上,即
x = ["%s:%d" % (l,c) for l, c in zip(vowels, map(name.lower().count, vowels))]