access an attribute of a class from a list

I have the following class.
class chrom(object):
      """docstring for chrom"""
      def __init__(self, chr, position, ma2c):
            self.chr = chr
            self.position = position
            self.ma2c = ma2c
and then i have a list of this chrom objects called chromlist.

Let us imagine I want to create a sublist with the position of the items i to j from the chromlist!!!!

How would i do that in the esiest and most efficient way. I can' t do chromsublist[0:4].position???? why?
dfernanAsked:
Who is Participating?
 
Roger BaklundCommented:
Sorry, the [0:4] slice contains 4 objects, not 5!

You could also make the list with a single statement:
# using map and lambda:
print map(lambda c:c.position,chromsublist[0:4])
 
# using list comprehension
print [x.position for x in chromsublist[0:4]]

Open in new window

0
 
Roger BaklundCommented:
chromsublist[0:4] does return the sublist (slice in python lingo), but you can not do chromsublist[0:4].position, because the list object does not have a 'position' property. This sublist contains 5 objects, each object have the 'position' property, so you need to use a loop to access it:
positions = []
for c in chromsublist[0:4]:
    positions.append(c.position)
print positions

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.