Python |返回项目在列表中出现的次数

时间:2015-07-30 19:53:16

标签: python

def count(squence,item):
    count=0
    i=0
    for item in squence:
        if item == squence:
            count+=1

    print count

count([1,7,8,7,7],7)

我不明白为什么If语句不起作用:( 谢谢,

3 个答案:

答案 0 :(得分:3)

list已有函数count()[1,7,8,7,7].count(7)返回3

但你要做的是:

def count(squence, item):
    cnt = 0
    for i in squence:
        if i == item:
            cnt += 1

    print cnt

在您的代码中,您覆盖itemitem是您要计算的值,但它也是您检查的值,因此它不起作用...

答案 1 :(得分:1)

您正在覆盖您要检查的变量。您还需要将目标项目与序列中的项目进行比较。以下代码有效。

def count(squence,target):
    count=0
    i=0
    for item in squence:
        if target == item:
            count+=1

    print count

count([1,7,8,7,7],7)

答案 2 :(得分:0)

为什么不在python中使用count方法?除非你这样做是练习,否则使用pythons标准函数是正确的,对吗?

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

class A
{
    string name;
    int rollno;
public:
    void setdata();
    void display();
    void Check();
};

void A::setdata()
{
    cout<<"enter name"<<endl;
    cin>>name;
    cout<<"enter rollno"<<endl;
    cin>>rollno;

}

void A::display()
{
    cout<<name<<"    "<<rollno<<endl;
}

void A::Check()
{
    A a;
    ifstream file;
    file.open("aa.txt",ios::in);
    while(!file.eof())
    {
        file.read((char*)&a,sizeof(a));
        a.display();
    }
}

class B
{
public:
    void enter();

};

void B::enter()
{
    A a;
    ofstream file;
    file.open("aa.txt",ios::out);
    a.setdata();
    file.write((char*)&a,sizeof(a));
}

int main()
{
    A a1;
    B b1;
    b1.enter();
    a1.Check();
}