查找列表中每个字符串的字符出现次数(python)

查找列表中每个字符串的字符出现次数(python),python,loops,for-loop,character,Python,Loops,For Loop,Character,我正在寻找一个for循环,该循环查找特定字符的出现次数除以字符串长度。之后显示最大的变量 Largestnumber=0 >>>List=["shadow", "light", "blazar"] >>>Insert= input("input a character(s): ") for loop Print (Largestnumber) 它会像这样出现: input a character(s): a#I have inputed an a 0.333

我正在寻找一个for循环,该循环查找特定字符的出现次数除以字符串长度。之后显示最大的变量

Largestnumber=0
>>>List=["shadow", "light", "blazar"]
>>>Insert= input("input a character(s): ")
for loop
Print (Largestnumber)
它会像这样出现:

input a character(s): a#I have inputed an a
0.33333
同样,我在寻找一种方法,用字符串中某个项目中的字符出现的时间除以确切项目的长度。 以我为例 “阴影”中有一个a,长度为6,因此它将是1/6=0.1666666 “wing”内没有任何a,长度为4,因此为0/4 “blazar”有2个a,整个刺的长度为6,因此2/6=0.3333
由于0.33333是打印的最大数字,您需要五件东西:

  • 一个迄今为止存储最大比率的变量
  • 存储相应字符串的变量
  • for循环
  • '.count('')
    统计
    出现在
    中的频率。因此,
    'blazar'。计数('a')
    将为2
  • len()
    将为您提供
    的长度。所以
    len('blazar')
    将是6

  • 您可以使用简单的列表理解:

    Largestnumber=max([float(x.count(Insert))/len(x) for x in List])
    
    编辑 正如@所指出的,列表理解可以省略

    Largestnumber=max(float(x.count(Insert))/len(x) for x in List)
    

    'somestring'.count('s')
    len('somestring')
    可能会派上用场……请注意,
    List
    对于变量来说是一个非常糟糕的名称,尽管它与内置的
    List
    类型没有冲突,因为大写字母。如果您使用的是最新版本的Python,不需要理解列表,这将创建一个生成器表达式:
    Largestnumber=max(float(x.count(Insert))/len(x)表示列表中的x)