Converting a string to list for submission to easygui multenterbox
Laurent Pointal
laurent.pointal at free.fr
Wed May 2 13:57:37 EDT 2012
ksals wrote:
> On May 1, 5:29 pm, John Gordon <gor... at panix.com> wrote:
>> In <3b5f65c4-cd95-4bb4-94f2-0c69cf2b1... at d20g2000vbh.googlegroups.com>
>> ksals <kbsals5... at gmail.com> writes:
>>
>> > The original choice looks like this when I print it:
>> > print(choice)
>> > ('ksals', '', 'alsdkfj', '3', '')
>> > I need to submit these as defaults to a multenterbox. Each entry above
>> > ksals, "", "alsdkfj', 3 , '' need to fill the five fields in the box.
>> > I tried your suggestion so you must be right it is a tuple of 5
>> > strings. But I need them to work in an instruction like
>> > fieldValues =3D eg.multenterbox(msg1,title, fieldNames, choice)
>> > fieldNames has 5 fields.
>>
>> If you just need to convert a tuple to a list, that's easy. Call the
>> built-in function list() and pass the tuple as an intializer:
>>
>> >>> choice = ('ksals', '', 'alsdkfj', '3', '')
>> >>> print choice
>>
>> ('ksals', '', 'alsdkfj', '3', '')>>> choice_list = list(choice)
>> >>> print choice_list
>>
>> ['ksals', '', 'alsdkfj', '3', '']
>>
>> --
>> John Gordon A is for Amy, who fell down the stairs
>> gor... at panix.com B is for Basil, assaulted by bears
>> -- Edward Gorey, "The Gashlycrumb Tinies"
>>
>>
> This is a small excert to show you what I get
>
> for choice in easygui.multchoicebox(msg1, title,qstack):
> if choice[0] == None:
> print ("No entries made")
> break
>
>
> print("CHOICE IS: ",choice) ..... CHOICE IS:
> ('', 'ksals', '', '', '')
> c=list(choice)
> print("C IS: ",c) ..... C IS: ['(',
> "'", "'", ',', ' ', "'", 'k', 's', 'a', 'l', 's', "'", ',', ' ', "'",
> "'", ',', ' ', "'", "'", ',', ' ', "'", "'",
> ')']
Looks like you have your tuple expression
('ksals', '', 'alsdkfj', '3', '')
not as a tuple, but as a string. Do you convert it somewhere ?
If you have it as a string, you can use eval() (not safe!) on the string to
retrieve the tuple, then list() on the tuple to get a list.
--
Laurent POINTAL - laurent.pointal at laposte.net
3 allée des Orangers - 91940 Les Ulis - France
Tél. 01 69 29 06 59
More information about the Python-list
mailing list