【问题标题】:Finding the number of occurances of a character of each string within a list (python)查找列表中每个字符串的字符出现次数(python)
【发布时间】:2015-11-24 03:46:40
【问题描述】:

我正在寻找一个 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.3333333 并且因为 0.33333 是它被打印的最大数字

【问题讨论】:

  • 'somestring'.count('s')len('somestring') 可能会派上用场...
  • 请注意,List 是一个非常糟糕的变量名称,尽管由于大写字母,它与内置的 list 类型不冲突。

标签: python loops for-loop character


【解决方案1】:

你需要五样东西:

  1. 一个变量,用于存储迄今为止看到的最大比率。
  2. 存储对应字符串的变量。
  3. for 循环。
  4. '<string>'.count('<substring>') 计算 <substring><string> 中出现的频率。所以'blazar'.count('a') 将是 2。
  5. len(<string>) 会给你<string> 的长度。所以len('blazar') 将是 6。

【讨论】:

    【解决方案2】:

    您可以使用简单的列表推导:

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

    编辑 正如@Galax所指出的,列表推导可以省略

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

    【讨论】:

    • 如果您使用的是最新版本的 Python,则不需要列表解析,这将创建一个生成器表达式:Largestnumber=max(float(x.count(Insert))/len(x) for x in List)
    猜你喜欢
    • 1970-01-01
    • 2014-08-31
    • 2022-11-12
    • 2021-06-24
    • 2011-04-21
    • 2011-04-21
    • 1970-01-01
    • 2021-03-19
    • 1970-01-01
    相关资源
    最近更新 更多