Сделать часть списка в виде списка - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть список lst

lst = ['Hi', 'Hello', '4', '71.5', '', '71.5', '', '68.1', '', '69', '', '69.4', '', '69.4', '', '70.3', '73.3', '']

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

lst = ['Hi', 'Hello', '4', [71.5, 68.1, 69.0, 69.4, 69.4, 70.3, 73.3]]

Я пытался (lst[2:]).split() после того, как третий элемент игнорирует пустые строки и помещает их в список как числа.

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Или filter + map (вид длинных):

lst = lst[:3]+[list(filter(lambda i: type(i)==float,map(lambda x: float(x) if x else x,lst[3:])))]

Сейчас:

print(lst)

Является:

['Hi', 'Hello', '4', [71.5, 71.5, 68.1, 69.0, 69.4, 69.4, 70.3, 73.3]]
0 голосов
/ 09 ноября 2018

Вы можете сделать что-то вроде этого:

lst = ['Hi', 'Hello', '4', '71.5', '', '71.5', '', '68.1', '', '69', '', '69.4', '', '69.4', '', '70.3', '73.3', '']

result = lst[:3] + [[float(e) for e in lst[3:] if e]]

print(result)

выход

['Hi', 'Hello', '4', [71.5, 71.5, 68.1, 69.0, 69.4, 69.4, 70.3, 73.3]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...