这个功能有什么作用?

时间:2009-10-16 09:51:40

标签: python

def fun1(a,x):
    z = 0
    for i in range(len(a)):
        if a[i] == x:
            z = z + 1
    return z

5 个答案:

答案 0 :(得分:9)

计算并返回数组xa的出现次数。更广泛地说,a可以是任何可索引对象。请参阅5.3.2 SubscriptionsPython Language Reference v2.6.3

  

5.3.2。订阅

     

订阅选择a的项目   序列(字符串,元组或列表)或   mapping(字典)对象:

 subscription ::=  primary "[" expression_list "]"
     

主要必须评估对象   序列或映射类型。

     

如果主要是映射,则   表达式列表必须评估为   其值为其中一个键的对象   映射和订阅   选择映射中的值   对应那个键。 (该   表达式列表是一个元组,除非   它只有一个项目。)

     

如果主要是一个序列,那么   表达式(list)必须求值为a   普通整数。如果这个值是   否定,序列的长度   添加到它(例如,x[-1]   选择x的最后一项。)   结果值必须是非负的   整数小于项目数   在序列和订阅   选择索引为的项目   价值(从零开始计算)。

     

字符串的项目是字符。一个   字符不是单独的数据类型   但是一串正好一个字符。

答案 1 :(得分:4)

它计算a中等于x的元素数量。它假定a是可索引的(如字符串或列表)

def fun1(a,x):              #Defines a function with 2 parameters, a and x
    z = 0                   #Initializes the counter
    for i in range(len(a)): #len(a) returns the length of a, range(len(a)) 
                            #returns an enumerator from 0 to len(a) - 1
        if a[i] == x:       #which is then used here to index a
            z = z + 1       #if the ith element of a is equal to x, increment counter
    return z                #return the counter

鉴于标题更改,您可以执行以下功能:

> fun1("hola mundo","o")
2

> fun1([1,2,3,4,4,3,2,1],4)
2

答案 2 :(得分:3)

计算数组xa个重复元素的数量。

答案 3 :(得分:3)

执行该功能的代码?

fun1("hello world","l")

答案 4 :(得分:1)

以上代码的较短版本:

>>> def f(a, x):
...     return sum(1 for e in a if e == x)
... 
>>> f([1, 2, 3, 4, 3, 7], 3)
2

这使用generator expression构建一个iterable,在1中每次出现x时产生asum添加了它们。更短的是使用lenfilter(如果使用Python 3.x,此代码需要转换为list

>>> def f(a, x):
...     return len(filter(x.__eq__, a))
... 
>>> f([1, 2, 3, 4, 3, 7], 3)
2

以上功能适用于任何iterable对象。正如SilentGhostgnibbler指出的那样,对于字符串对象和可变序列类型,有count method,它允许更简洁的表示法:

>>> [1, 2, 3, 4, 3, 7].count(3)
2