Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Create object for item in list

Reply
Thread Tools

Create object for item in list

 
 
Helge
Guest
Posts: n/a
 
      04-29-2004
I wonder how this can be accomplished:

I've got a list, containing several strings. The strings look like
this:

[ "Name1/N1/N2/N3" , "Name2/N1/N2/N3" , "..." ]

I would like to create one object for each item in the list, and the
name of the object should be "str(item.split("/")[0])".

I've tried this, but it won't work:

for item in list:
str(item.split("/")[0]) = class(item)

....
 
Reply With Quote
 
 
 
 
Russell Blau
Guest
Posts: n/a
 
      04-29-2004
"Helge" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed) om...
> I wonder how this can be accomplished:
>
> I've got a list, containing several strings. The strings look like
> this:
>
> [ "Name1/N1/N2/N3" , "Name2/N1/N2/N3" , "..." ]
>
> I would like to create one object for each item in the list, and the
> name of the object should be "str(item.split("/")[0])".
>
> I've tried this, but it won't work:
>
> for item in list:
> str(item.split("/")[0]) = class(item)
>
> ...


A couple of small points before getting to the big issue:

1. "class" is a keyword, and can't be used in the context you have it. You
should define your class (which I'll call "C") earlier in your program.

2. "list" is a type name, and shouldn't be used as a variable name, so I'll
change it to "mylist".

2. The str() function is unnecessary, since item.split("/")[0] is already a
string by definition.

Now, I assume what you are trying to do is get Python to create an instance
of your class C, and assign it to the variable whose name is given by the
evaluation of item.split("/")[0]. In other words, you want Python to
execute a series of statements that look like this:

Name1 = C("Name1/N1/N2/N3")

What you've done doesn't quite accomplish this; the left side of your
assignment expression evaluates to a string, so in effect you're telling
Python to execute:

"Name1" = C("Name1/N1/N2/N3")

(At least that's how I interpret what you mean by "class(item)".) This
doesn't make sense to the interpreter, any more than "Spam" = 7 would. But
you can get Python to execute code provided to it inside a string, as
follows:

for item in mylist:
exec "%s = C('%s')" % (item.split("/")[0], item)

Good luck... Needless to say, you need to be careful about where the
contents of "mylist" come from, or you could end up overwriting other
variables that your program needs to function correctly.

--
I don't actually read my hotmail account, but you can replace hotmail with
excite if you really want to reach me.


 
Reply With Quote
 
 
 
 
Terry Reedy
Guest
Posts: n/a
 
      04-29-2004

"Helge" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed) om...
> I wonder how this can be accomplished:
>
> I've got a list, containing several strings. The strings look like
> this:
>
> [ "Name1/N1/N2/N3" , "Name2/N1/N2/N3" , "..." ]
>
> I would like to create one object for each item in the list, and the
> name of the object should be "str(item.split("/")[0])".


Binding and using dynamic names in the global (or function local) namespace
is generally a nuisance. The standard idiom is to use a separate
dictionary as a namespace for just those items. Something like

myobs = {}
for datastring in namedata:
data = datastring.split('/')
myobs[data[0]] = myclass(*data[1:])

Terry J. Reedy




 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
List index method for complex list item types? techiepundit@futurepundit.com Python 4 12-31-2005 03:44 AM
Object creation - Do we really need to create a parent for a derieved object - can't the base object just point to an already created base object jon wayne C++ 9 09-22-2005 02:06 AM
Created object on stack and then returned this object to caller. Item deleted but still there?? opistobranchia C++ 1 08-14-2005 07:51 PM
Create object for item in list Helge Python 0 04-29-2004 07:09 PM
Change style of a single row of the item list of datagrid, based on a field value of current item... QUASAR ASP .Net Datagrid Control 6 01-17-2004 07:46 PM



Advertisments