Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 240
  • Last Modified:

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?
0
dfernan
Asked:
dfernan
  • 2
2 Solutions
 
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
 
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

Featured Post

Become an Android App Developer

Ready to kick start your career in 2018? Learn how to build an Android app in January’s Course of the Month and open the door to new opportunities.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now