Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 字母计数功能_Python_List Comprehension_Counter_Alphabetical_Alphabetical Sort - Fatal编程技术网

Python 字母计数功能

Python 字母计数功能,python,list-comprehension,counter,alphabetical,alphabetical-sort,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(

我需要定义一个函数,该函数接受字符串并计算输入中字母表(仅小写)的字母数,例如,如果我输入“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 

我不知道如何改变它,因为我得到了相同的错误

您可以为此使用
计数器
对象

from collections import Counter
Counter(x for x in string.lower() if x.isalpha())

这会将
字符串中的所有字符转换为小写,检查它们是否为字母,然后对所有字符进行计数。

您可以使用
计数器
对象进行此操作

from collections import Counter
Counter(x for x in string.lower() if x.isalpha())

这会将
字符串中的所有字符转换为小写,检查它们是否为字母,然后对所有字符进行计数。

我想您需要这个:

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

我想你需要这个:

import string
def l_count(stra):
    stra = stra.lower()
    return {i:stra.count(i) for i in string.ascii_lowercase}
这里有一种方法:

您可能希望在字符串中添加逻辑,排除标点符号等。

这里有一种方法:


您可能希望向字符串添加逻辑,排除标点符号等。

如果您只需要字符串中的字符,则可以使用对象:

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

>>> 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

如果只需要字符串中的字符,则可以使用以下对象:

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

>>> 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

这是因为
al
是一个列表错误信息非常清楚,不是吗?我知道,但我如何更改它虽然很诱人,但不要调用字符串
str
-这是一个内置函数。请阅读。这是因为
al
是一个列表错误信息非常清楚,不是吗?我知道,但我如何更改它尽管它很诱人,但不要调用您的字符串
str
-这是一个内置函数。请阅读。这不包括所有
…=0
计数OP似乎想要的。如果您使用
计数器。get('',0)
检索计数,当一个字符不存在时,它将返回0。这也是事实。事实上,您甚至不必
获取
,您也可以对任何不在字符串中的
x
执行
计数器[x]
,并将获取
0
。这不包括所有
..=0
计数。但是,如果使用
计数器,则为True。获取('',0)
以检索计数,当一个字符不存在时,它将返回0。这也是事实。事实上,您甚至不必
get
,您也可以对字符串中不存在的任何
x
执行
counter[x]
,并将获得
0
。方法
str.lower
具有返回值。它不会在内部修改实例。在您的情况下,它应该是
stra=stra.lower()
。方法
str.lower
有一个返回值。它不会在内部修改实例。在您的情况下,它应该是
stra=stra.lower()