2013-09-08 2 views

ответ

3

Вы можете использовать:

from ast import literal_eval 
newlist = [[literal_eval(el) for el in item] for item in mylist] 

Таким образом, тип будет определяться типом, необходимым для хранения этого числа.

+0

Ах да, что лучше: р – Amadan

+0

Замечательный и лучший ответ – pokrate

1

Если у вас всегда есть пары целых и поплавок,

[[int(x), float(y)] for [x, y] in mylist] 

В противном случае, для большей общности за счет типа корректности,

[[float(x) for x in s] for s in mylist] 

Для более типа правильности за счет ясности,

def number(x): 
    try: 
    return int(x) 
    except: 
    return float(x) 
[[number(x) for x in s] for s in mylist] 
0
lst = [['4', '9.012'], ['12', '24.305'], ['20', '20.078']] 
map(lambda x: [int(x[0]), float(x[1])], lst) 
0
>>> l = [['4', '9.012'], ['12', '24.305'], ['20', '20.078']] 
>>> l1 = [ [ float(i[0]), float(i[1]) ] for i in l ] 

ИЛИ

>>> l 
[['4', '9.012'], ['12', '24.305'], ['20', '20.078']] 

>>> def f(arg): 
...  return [float(arg[0]), float(arg[1])] 

>>> map(f,l) 
[[4.0, 9.012], [12.0, 24.305], [20.0, 20.078]]