FAQ
Greetings python-list!

The good news is that I've been having a blast with Python since early
Spring. I've had great success in both learning the language from online
/ usegroup resources and implementing it in one of my projects. However,
I can't pretend to be an expert, and I do not have a strong comp sci
background.

This is a question that I've had for a while. Usually, I'll stumble
across the answer with repeated attempts and re-searching the groups, but
I didn't have luck with this one, even in a Dietel book I picked up at the
library. I'm assuming there's an obvious answer, so maybe ya'll can save
me some time.

My Python use involves organizing nested list information. In a
simplified example, you could imagine a list of reactants and products in
a chemical reaction. Thus,

len(nested_list_of_reactants) = len(nested_list_of_products) => "number of
reactions"
where: nested_list_of_reactants[i] => "list of reactants for reaction i"
where: nested_list_of_reactants[i][j] => "reactant j of reaction i"

And so forth. Obviously, there are many attributes associated with a
specific reaction. Currently, I just pass these attribute lists (nested
and non-nested) into and out of functions. However, I'd like to be able
to create a class that would streamline this.

E.g., (this is a MATLAB structure whose qualities I'd like to emulate):
reaction(27).name = 'fawlty towers'
reaction(27).reactant(2).name = 'john cleese'

Currently, I'd have a list and a nested list to take care of this...
reaction_name[27] = 'fawlty towers' and reactants[27][2] = 'john cleese'
if this makes sense.

Any thoughts or suggestions on this type of data structuring would be
greatly appreciated. Python love, Joel

Search Discussions

  • Joel at Aug 29, 2003 at 8:20 pm
    Does anyone have any thoughts on this?

    Joel Forrest Moxley <jfmoxley at MIT.EDU> wrote in message news:<mailman.1061749909.28327.python-list at python.org>...
    Greetings python-list!

    The good news is that I've been having a blast with Python since early
    Spring. I've had great success in both learning the language from online
    / usegroup resources and implementing it in one of my projects. However,
    I can't pretend to be an expert, and I do not have a strong comp sci
    background.

    This is a question that I've had for a while. Usually, I'll stumble
    across the answer with repeated attempts and re-searching the groups, but
    I didn't have luck with this one, even in a Dietel book I picked up at the
    library. I'm assuming there's an obvious answer, so maybe ya'll can save
    me some time.

    My Python use involves organizing nested list information. In a
    simplified example, you could imagine a list of reactants and products in
    a chemical reaction. Thus,

    len(nested_list_of_reactants) = len(nested_list_of_products) => "number of
    reactions"
    where: nested_list_of_reactants[i] => "list of reactants for reaction i"
    where: nested_list_of_reactants[i][j] => "reactant j of reaction i"

    And so forth. Obviously, there are many attributes associated with a
    specific reaction. Currently, I just pass these attribute lists (nested
    and non-nested) into and out of functions. However, I'd like to be able
    to create a class that would streamline this.

    E.g., (this is a MATLAB structure whose qualities I'd like to emulate):
    reaction(27).name = 'fawlty towers'
    reaction(27).reactant(2).name = 'john cleese'

    Currently, I'd have a list and a nested list to take care of this...
    reaction_name[27] = 'fawlty towers' and reactants[27][2] = 'john cleese'
    if this makes sense.

    Any thoughts or suggestions on this type of data structuring would be
    greatly appreciated. Python love, Joel
  • Terry Reedy at Aug 29, 2003 at 8:51 pm
    "Joel" <jfmoxley at mit.edu> wrote in message
    news:e31c4866.0308291220.776a92a5 at posting.google.com...
    Does anyone have any thoughts on this?
    My Python use involves organizing nested list information. In a
    simplified example, you could imagine a list of reactants and
    products in
    a chemical reaction. Thus,
    I would think about keeping reaction data together rather than in
    separate lists. Perhaps you need to add a reaction attribute dict or
    define a reaction class. Perhaps your need a reactant class. But I
    would not say more without knowing much more about your specific
    project and its goals.

    Terry J. Reedy
  • Joel at Sep 11, 2003 at 6:20 pm
    For posterity, here's what ended up working. Many thanks to Tom Minka
    for showing me this. I understood the class stuff in principle, but I
    just couldn't implement correctly.

    class ReactionClass:
    def __init__(self,Name='',Reactant=[],Product=[]):
    self.Name = Name
    self.Reactant = Reactant
    self.Product = Product
    def __str__(self):
    # how to print the object
    return self.Name+': '+str(self.Reactant)+' ->
    '+str(self.Product
    )

    Reaction = []
    # two different ways of defining a reaction
    Reaction.append(ReactionClass('Kinase',['GLUC', 'ATP'],['G6P',
    'ADP']))
    print(Reaction[0].Name)
    print(Reaction[0])
    Reaction.append(ReactionClass())
    Reaction[1].Name = 'and so on'
    Reaction[1].Reactant = ['one', 'two']
    Reaction[1].Product = 'something else'
    print(Reaction[1])
    print(Reaction[1].Reactant[1])



    jfmoxley at mit.edu (Joel) wrote in message news:<e31c4866.0308291220.776a92a5 at posting.google.com>...
    Does anyone have any thoughts on this?

    Joel Forrest Moxley <jfmoxley at MIT.EDU> wrote in message news:<mailman.1061749909.28327.python-list at python.org>...
    Greetings python-list!

    The good news is that I've been having a blast with Python since early
    Spring. I've had great success in both learning the language from online
    / usegroup resources and implementing it in one of my projects. However,
    I can't pretend to be an expert, and I do not have a strong comp sci
    background.

    This is a question that I've had for a while. Usually, I'll stumble
    across the answer with repeated attempts and re-searching the groups, but
    I didn't have luck with this one, even in a Dietel book I picked up at the
    library. I'm assuming there's an obvious answer, so maybe ya'll can save
    me some time.

    My Python use involves organizing nested list information. In a
    simplified example, you could imagine a list of reactants and products in
    a chemical reaction. Thus,

    len(nested_list_of_reactants) = len(nested_list_of_products) => "number of
    reactions"
    where: nested_list_of_reactants[i] => "list of reactants for reaction i"
    where: nested_list_of_reactants[i][j] => "reactant j of reaction i"

    And so forth. Obviously, there are many attributes associated with a
    specific reaction. Currently, I just pass these attribute lists (nested
    and non-nested) into and out of functions. However, I'd like to be able
    to create a class that would streamline this.

    E.g., (this is a MATLAB structure whose qualities I'd like to emulate):
    reaction(27).name = 'fawlty towers'
    reaction(27).reactant(2).name = 'john cleese'

    Currently, I'd have a list and a nested list to take care of this...
    reaction_name[27] = 'fawlty towers' and reactants[27][2] = 'john cleese'
    if this makes sense.

    Any thoughts or suggestions on this type of data structuring would be
    greatly appreciated. Python love, Joel

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppython-list @
categoriespython
postedAug 24, '03 at 5:31p
activeSep 11, '03 at 6:20p
posts4
users2
websitepython.org

2 users in discussion

Joel: 3 posts Terry Reedy: 1 post

People

Translate

site design / logo © 2022 Grokbase