【问题标题】:Count amount of specific values in list?计算列表中特定值的数量?
【发布时间】:2013-06-07 03:23:56
【问题描述】:

我正在尝试计算给定 x 列表中的 'a',但这段代码是错误的,我不知道为什么

x = ['a', 'b', 'a']

def a_count(x):
    n = 0
    for ltr in x:
        if ltr == 'a':
            n = n + 1
        else :
            n = n
        return n
    return 

如果有人能告诉我如何计算用户设置值的另一个列表中的“a”,我也将不胜感激。这可以通过设置一个空列表来完成,例如

y = []

然后……然后呢?

【问题讨论】:

    标签: python list python-3.x


    【解决方案1】:

    您返回得太早了,通过更改最后几行函数可以正常工作

    x = ['a', 'b', 'a']
    
    def a_count(x):
        n = 0
        for ltr in x:
            if ltr == 'a':
                n = n + 1
        return n 
    
    >>> a_count(x)
    2
    

    你可以更简洁地这样做:

    >>> sum(elem == 'a' for elem in x)
    2
    

    上面的代码只是简单地将0s 和1selem == 'a' 的到达元素的结果)相加得到'a's 的总数

    【讨论】:

      【解决方案2】:
      >>> x = ['a', 'b', 'a']
      >>> x.count('a')
      2
      

      【讨论】:

        【解决方案3】:
        x = ['a', 'b', 'a']
        
        def a_count(x):
            n = 0
            for ltr in x:
                if ltr == 'a':
                    n = n + 1
            return n
        

        【讨论】:

          【解决方案4】:

          这是一种可能会派上用场的方法:

          from collections import Counter
          
          x = ['a', 'b', 'a']
          Counter(x)['a']
          

          这将使用内置的 Collection 计数器来计算所有唯一值。然后访问a的计数

          【讨论】:

            猜你喜欢
            • 2014-06-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-23
            相关资源
            最近更新 更多