信纸计数功能

时间:2018-10-19 12:17:48

标签: python list-comprehension counter alphabetical alphabetical-sort

我需要定义一个函数,该函数接受一个字符串并计算输入中字母的字母数(仅小写),例如,如果我输入“ jack”,它将返回:

a=1,b=0,c=1,d=0,...,j=1,k=1,...,z=0.

所以我实现了以下内容:

def l_count(str):
    str.lower()
    for ch in str:
        return str.count('a')

仅返回字符串中“ a”的数字。 由于我不想对所有字母都这样做,所以我想到了实现这样的列表理解:

al = [chr(i) for i in range(ord('a'),ord('z'))] 
def l_count(str):
    str.lower()
    for character in str:
        return str.count(al)

但是我得到一个错误:

must be str, not list 

由于出现相同的错误,我不知道如何更改它。

4 个答案:

答案 0 :(得分:2)

这是使用collections.Counter的一种方法:

Code       Name
-----------------------------
Finance    Finance Header
Finance    Bank Charges
Finance    Interest Charges
Finance    Other Charges
Finance    Finance Footer
Insurance  Insurance Header
Insurance  Premium Charges
Insurance  Other Charges
Insurance  Insurance Footer
-----------------------------

您可能希望为字符串from collections import Counter from string import ascii_lowercase x = 'jack' c = Counter(dict.fromkeys(ascii_lowercase, 0)) c.update(Counter(x)) print(*(f'{k}={v}' for k, v in c.items()), sep=',') a=1,b=0,c=1,d=0,e=0,f=0,g=0,h=0,i=0,j=1,k=1,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0 添加逻辑,排除标点符号等。

答案 1 :(得分:1)

您可以为此使用GlobalConfigViewModel对象

Counter

这会将from collections import Counter Counter(x for x in string.lower() if x.isalpha()) 中的所有字符转换为小写字母,检查它们是否为字母,然后计算所有字符。

答案 2 :(得分:1)

我认为您需要这个:

import string
def l_count(stra):
    stra = stra.lower()
    return {i:stra.count(i) for i in string.ascii_lowercase}

答案 3 :(得分:0)

如果只希望字符串中存在字符,则可以使用Counter对象:

>>> from collections import Counter
>>> my_counter = Counter('jack')
>>> my_counter
Counter({'j': 1, 'a': 1, 'c': 1, 'k': 1})

如果要显示所有小写字母的计数,现在可以像这样循环:

>>> import string
>>> ','.join('{}={}'.format(ch, my_counter.get(ch, 0)) for ch in string.ascii_lowercase)
'a=1,b=0,c=1,d=0,e=0,f=0,g=0,h=0,i=0,j=1,k=1,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0'

>>> for ch in string.ascii_lowercase:
...     print(ch, my_counter.get(ch, 0))
a 1
b 0
c 1
d 0
e 0
f 0
g 0
h 0
i 0
j 1
k 1
l 0
m 0
n 0
o 0
p 0
q 0
r 0
s 0
t 0
u 0
v 0
w 0
x 0
y 0
z 0