Я сделал :

>>>data="1,2,3,,4,51,,6"

>>>list(map(int,map((lambda x:x.split(",")),map(lambda y:y,data.split(",,")))))

Я хочу получить: [1,2,3,4,51,6]

-3
Aurwa Younis 20 Дек 2015 в 19:21

3 ответа

Лучший ответ

Вы можете использовать понимание списка для split строки в ',', а затем преобразовать в int, если символ не None

>>> [int(i) for i in data.split(',') if i]
[1, 2, 3, 4, 51, 6]

Если вы не хотите использовать понимание списка (которое я бы порекомендовал), вы можете использовать map и filter за счет читабельности.

>>> list(map(int, filter(None, data.split(','))))
[1, 2, 3, 4, 51, 6]
2
CoryKramer 20 Дек 2015 в 16:45

Вы также можете использовать filter для фильтрации пустых строк и None значений, а после этого использовать map:

>>> map(int, filter(None, data.split(',')))
[1, 2, 3, 4, 51, 6]
0
Delimitry 20 Дек 2015 в 16:46

Другое решение может быть,

print map(int,data.replace(",,",",").split(","))

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

0
Rockybilly 20 Дек 2015 в 17:18