473,245 Members | 1,792 Online

# convert a string to tuple

how do I convert
b is a string b = '(1,2,3,4)' to b = (1,2,3,4)

Jul 19 '05 #1
7 46185
how do I convert
b is a string b = '(1,2,3,4)' to b = (1,2,3,4)

In [1]: b = '(1,2,3,4)'

In [2]: b[1:-1]
Out[2]: '1,2,3,4'

In [3]: b[1:-1].split(',')
Out[3]: ['1', '2', '3', '4']

In [4]: tuple(b[1:-1].split(','))
Out[4]: ('1', '2', '3', '4')

Ooops, you wanted ints in there:

In [5]: tuple(map(int, b[1:-1].split(',')))
Out[5]: (1, 2, 3, 4)

Ciao,
Marc 'BlackJack' Rintsch
Jul 19 '05 #2
Pass it to eval:
eval('(1, 2, 3, 4, 5)')

(1, 2, 3, 4, 5)

Basically what you are doing it evaluating the repr of the tuple.

-Brett

Jul 19 '05 #3
qu*****@gmail.com wrote:
b is a string b = '(1,2,3,4)' to b = (1,2,3,4)

py> tuple(int(s) for s in '(1,2,3,4)'[1:-1].split(','))
(1, 2, 3, 4)

Or if you're feeling daring:

py> eval('(1,2,3,4)', dict(__builtins__=None))
(1, 2, 3, 4)

Python makes no guarantees about the security of this second one though.

STeVe
Jul 19 '05 #4
bc*****@gmail.com wrote:
Pass it to eval:
eval('(1, 2, 3, 4, 5)')

(1, 2, 3, 4, 5)

Just be sure you know where your strings come from. You wouldn't want
someone to pass you
"""__import__('os').system('rm -rf /')"""
and then send that to eval. =)

STeVe
Jul 19 '05 #5
Steven Bethard wrote:
Just be sure you know where your strings come from. You wouldn't want
someone to pass you
"""__import__('os').system('rm -rf /')"""
and then send that to eval. =)

Why not, Steven? I just tried it and my compu
Jul 19 '05 #6
lol

Jul 19 '05 #7
On Tue, 31 May 2005 13:14:09 -0700, querypk wrote:
how do I convert
b is a string b = '(1,2,3,4)' to b = (1,2,3,4)

You can do:

def str2tuple(s):
"""Convert tuple-like strings to real tuples.
eg '(1,2,3,4)' -> (1, 2, 3, 4)
"""
if s[0] + s[-1] != "()":
raise ValueError("Badly formatted string (missing brackets).")
items = s[1:-1] # removes the leading and trailing brackets
items = items.split(',')
L = [int(x.strip()) for x in items] # clean up spaces, convert to ints
return tuple(L)

For real production code, you will probably want better error checking.

--
Steven.
Jul 19 '05 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

### Similar topics

 3 by: Lukas Kasprowicz | last post by: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi Folks, My Proglem is, I get after a query on a mysql database with module MySQLdb a tuple but I need this output from database as a string.... 1 by: Michal Mikolajczyk | last post by: Is there a quick way to convert a unicode tuple to a tuple containing python strings? (u'USER', u'NODE', u'HASH', u'IDNBR') to this: ('USER', 'NODE', 'HASH', 'IDNBR') I need to be able... 1 by: Jinming Xu | last post by: Hello everyone, While embedding my C++ program with Python, I am impeded by the conversion from a Python Tuple to a C++ array. I hope to get some assistance from you guys. I have a sequence... 16 by: flyaflya | last post by: a = "(1,2,3)" I want convert a to tuple:(1,2,3),but tuple(a) return ('(', '1', ',', '2', ',', '3', ')') not (1,2,3) 1 by: Bell, Kevin | last post by: I'm pulling a range of cells from Excel into a list and the data in Excel is a number or possibly some text like an asterisk. Each member of the list is a com object (I think) and I'm converting... 3 by: Amy L. | last post by: I have a class that contains a string array. However, I can't get this object to serialize in the xml output. Is there a trick to get a string to serialize? Thanks Amy. 2 by: aqmaiya | last post by: Hello, there is string value 'Dec 06, 2000' I want to convert that string date to SHORT FORMAT like '2000-12-06-. Please help me how do I do that? I'm new in Jython. Thanks, aqmaiya 8 by: hidrkannan | last post by: I am reading a set of data from the excel workbook. Data are contained in 2 columns. Column A contains the names and Column B contains values. The issue is the value can be of any type integer,... 0 by: dudeja.rajat | last post by: On Tue, Aug 19, 2008 at 12:40 PM,