def fun1(a,x):
z = 0
for i in range(len(a)):
if a[i] == x:
z = z + 1
return z
答案 0 :(得分:9)
计算并返回数组x
中a
的出现次数。更广泛地说,a
可以是任何可索引对象。请参阅5.3.2 Subscriptions的Python 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)
计算数组x
中a
个重复元素的数量。
答案 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
时产生a
。 sum
添加了它们。更短的是使用len
和filter
(如果使用Python 3.x,此代码需要转换为list
:
>>> def f(a, x):
... return len(filter(x.__eq__, a))
...
>>> f([1, 2, 3, 4, 3, 7], 3)
2
以上功能适用于任何iterable对象。正如SilentGhost和gnibbler指出的那样,对于字符串对象和可变序列类型,有count
method,它允许更简洁的表示法:
>>> [1, 2, 3, 4, 3, 7].count(3)
2