test=[] def tst(func): global test test+=[[func, func.__name__]] return func @tst def convert_for1(data): output = [] for line in data: x,y = line.split(',') output+=[[float(x),float(y)]] return output @tst def convert_for2(data): output = [] for line in data: x,y = line.split(',') output.append([float(x),float(y)]) return output @tst def convert_map(data): return [list(map(float, x.split(','))) for x in data] @tst def convert_map2(data): return [[i for i in map(float,x.split(','))] for x in data] @tst def convert_map3(data): return [map(float, x.split(',')) for x in data] @tst def convert_map4(data): return map(lambda line:map(float, line.split(',')), data) @tst def convert_map5(data): return [[j for j in i] for i in map(lambda line:map(float, line.split(',')), data)] @tst def convert_compr(data): return [[float(i), float(j)] for i,j in [k.split(',') for k in data]] @tst def convert_gener(data): return [[float(i), float(j)] for i,j in (k.split(',') for k in data)] @tst def convert_list_comprehension(data): """This is the same as convert_map, just faster and more readable""" return [[float(y) for y in x.split(',')] for x in data] text = """ 1,2 2,3 3,4 5,6 7,8""" data = text.splitlines() data = ['0.1, 0.3', '0.4, 0.5', '0.7, 0.8', '0.3, 0.9', '0.9, 0.4', '1.0, 0.9', '0.0, 0.5', '0.1, 0.8', '0.9, 0.8', '0.8, 0.6'] result=convert_for1(data) print(result) for i in test: print(i[1], i[0](data)==result) import markdown class MD(str): def _repr_html_(self): return markdown.markdown(self) for i in test: print(i[1]) %timeit i[0](data)