我正在尝试编写一个函数count(s, chars)
,它接受字符串s
和字符列表chars
。该函数应该计算chars
中给定字母的出现次数。它应该返回一个字典,其中的键是字符列表chars
中给定的字符。
例如:
In [1]: s = "Another test string with x and y but no capital h."
In [2]: count(s, ['A', 'a', 'z'])
Out[2]: 'A': 1, 'a': 3, 'z': 0
我做了一些代码,可以计算字符串的所有字符,并返回一个字典:
return {i: s.count(i) for i in set(s)}
但我不确定如何使用特定字符列表并返回字典。
6条答案
按热度按时间zysjyyx41#
关于:
生成:
虽然这是相当低效的。也许更有效的方法是在一个步骤中完成计数。你可以使用
Counter
来完成这项工作,然后保留有趣的字符:xqnpmsa82#
返回子字符串sub在范围[start,end]中不重叠出现的次数。可选参数start和end在切片表示法中被解释为。
例如使用
所以count函数也可以很容易地用在这个场景中。
控制台输出如下所示
zpgglvta3#
您可以使用dict
fromkeys
方法将所有关键字设置为零,然后为每个字符递增,以“旧方式”执行此操作:或者,进行预筛选,以便只测试您感兴趣的键:
但最快、最多的Pythonic是使用Counter:
然后根据这些内容构建你想要的法令:
68bkxrlz4#
也许是类似的事。
atmip9wb5#
你也可以用
zip
内置的方法构建字典:iibxawm46#
好吧,有这么多答案,我也会给出我的答案,它是基于内置的结构: