Вам также нужно разделить строки на ','
.
>>> [tuple(map(int, s.split(','))) for s in myList]
[(0, 1), (0, 2), (0, 3)]
Другой вариант - использовать модуль csv
.
>>> import csv
>>> list(csv.reader(myList))
[['0', '1'], ['0', '2'], ['0', '3']]
>>> [tuple(map(int, row)) for row in csv.reader(myList)]
[(0, 1), (0, 2), (0, 3)]
Если не очень важно, что внутренние элементы результата являются кортежами и имеют тип int
, мы можем упростить решение csv
до
>>> list(csv.reader(myList, quoting=csv.QUOTE_NONNUMERIC))
[[0.0, 1.0], [0.0, 2.0], [0.0, 3.0]]
~ ~ * редактировать 1016 *
ответ thelogicalkoan напомнил мне о ast.literal_eval
, который обеспечивает здесь самое элегантное (и безопасное) решение.
>>> from ast import literal_eval
>>> [literal_eval(x) for x in myList]
[(0, 1), (0, 2), (0, 3)]