выражение списка Python - PullRequest
       10

выражение списка Python

3 голосов
/ 10 января 2012

Скажите, что я получил строку:

s = '''1 2 3
4 5 6
7 8 9
'''

Я хочу превратить каждую строку строки s в список значений с плавающей точкой, то есть:

l = [[1.0 2.0 3.0], [4.0 5.0 6.0], [7.0 8.0 9.0]]

Как я могу сделать это в одну строку?

Ответы [ 3 ]

8 голосов
/ 10 января 2012
[[float(v) for v in l.split()] for l in s.strip().split('\n')]
4 голосов
/ 10 января 2012
s = '''1 2 3
4 5 6
7 8 9'''

l = [ map( float, i.strip().split(" ") ) for i in s.split( "\n" ) ] 

Примечание strip не требуется, если нет свободных мест. Газа работает как trim например. в php.

2 голосов
/ 10 января 2012

Сначала выполняется итерация по строкам, а затем по строкам и преобразование строк в числа с плавающей точкой.Если вы хотите, чтобы разговор был целым числом, измените float на int.

[[float(x) for x in line.split(' ')] for line in s.split('\n')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...