On 4/2/2010 6:21 AM, Shashwat Anand wrote:
 >>> s = 'si_pos_99_rep_1_0.ita'
 >>> res = tuple(re.split(r'(\d+)', s))
 >>> res
('si_pos_', '99', '_rep_', '1', '_', '0', '.ita')

This solves the core of the problem, but is not quite there ;-).
Thomas requested conversion of int literals to ints, which is easy:

import re
s = 'si_pos_99_rep_1_0.ita'
res = re.split(r'(\d+)', s)
for i,s in enumerate(res):
  try: res[i] = int(s)
  except: pass
res = tuple(res)
print(res)

('si_pos_', 99, '_rep_', 1, '_', 0, '.ita')

Terry Jan Reedy



On Fri, Apr 2, 2010 at 3:42 PM, Thomas Heller <thel...@ctypes.org
<mailto:thel...@ctypes.org>> wrote:

    Maybe I'm just lazy, but what is the fastest way to convert a string
    into a tuple containing character sequences and integer numbers,
    like this:


    'si_pos_99_rep_1_0.ita'  -> ('si_pos_', 99, '_rep_', 1, '_', 0, '.ita')

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to