如何使用python返回for循环计数的结果?

时间:2019-05-04 07:30:14

标签: python-3.x

我正在使用下面的代码来比较我给定的字符串中的每个值,如果任何字符与4匹配,我都需要总匹配次数。

我尝试了以下方法,但我只得到0,请问任何人可以检查并提出建议,我哪里出错了?

       def wordcount(list):    
count=0
values=[]
for i in range (len(list)):
    if int(list[i])==4:
        print("the value taken from the loop is: ",list[i])
        print("comparison result is: ",list[i]==4)
        count=count+1
        print("match count=",count)
        values.append(count)
        return values
    else:
        values.append(count)
        return values
   # return count

print(wordcount(“ 1452454878594521564”))

预计5为计数

2 个答案:

答案 0 :(得分:0)

您的代码不起作用的原因是因为一旦执行return语句,循环将不会再次执行。该控件将无法使用该功能。修改代码的方法如下:

def wordcount(l):    
    count=0
    for i in range(len(l)):
        if int(l[i])==4:
            count=count+1
    return count
print(wordcount("1452454878594521564"))

我删除了空值列表,因为老实说,我没有看到它的目的。

此外,如果您要对字符串中的特定字符进行计数,请使用count方法:

print("1452454878594521564".count('4'))

答案 1 :(得分:0)

如果您要查找字符串中是否重复了4次项,则得到的结果是正确的。下面的代码将演示一个项目重复出现4次或以上的次数:


def wordcount(list):    
    count=0
    values=[]
    for item in list:
        innercount=0
        for initem in list:
            if item == initem:
                innercount=innercount+1
        if innercount >=4:
            count=count+1
            values.append([item,innercount])
        #list = list.replace(item, "")      
    return values, count

如果您希望唯一的出现,请取消对注释行的散列。