[Tutor] Looping over lists of objects

Ed Singleton singletoned at gmail.com
Mon Apr 24 18:19:31 CEST 2006


On 24/04/06, Etrade Griffiths <etrade.griffiths at dsl.pipex.com> wrote:
>  Hi
>
>  just feeling my way into Python with a  small app that reads data from
> file, creates objects using that data, stores the objects in a list, loops
> over the list doing comparison tests to filter out various objects.  Here is
> a code snippet:
>
[snip]
>
>  Trying to debug this using IDLE.  The calls x.get_a and x.get_b always
> return zero so something is going wrong somewhere.  I think I'm either not
> storing the objects correctly or retrieving them correctly but no idea why!
> All suggestions gratefully received!!!

I added some test input to give the code below, and it works fine for
me.  Can you give us some test input that fails for you?  Can you also
show us your test() function as it may the code in there that is
failing.

Ed

class myObj:
    def __init__(self,a,b):
        self.a=a
        self.b=b

    def get_a(self):
        return self.a

    def get_b(self):
        return self.b


input = ["1 2 3", "4 5 6"]

L1=[]
nobj=0

for line in input:
        L0=line.split()
        a=L0[1]
        b=L0[2]
        nobj=nobj+1

        an_obj=myObj(a,b)

        L1.append(an_obj)

# Filter data

for i in range(1,nobj):
        for x in L1:            # ... loop over all objects in list
                print "a -> ", x.get_a()             # ... get value
of a from current object
                print "b -> ", x.get_b()


It returns:

a ->  2
b ->  3
a ->  5
b ->  6


More information about the Tutor mailing list