Удаление пробелов и слияние чисел в списке - Python - PullRequest
0 голосов
/ 21 октября 2019

Мой список:

['1', ' ', '1', '0', ' ', '2', '\n']

и должен быть:

[1,10,2]

Как это сделать на python?

Ответы [ 2 ]

2 голосов
/ 21 октября 2019

Видя данные и желаемый результат, вполне можно предположить, что элементы списка с пробелами делят числа. В этом случае следующий алгоритм будет работать и для других входных данных.

Присоединить список к полной строке. Затем разбейте строку в пробелах. Преобразуйте значения результирующего списка в целые числа.

list(map(int, ''.join(['1', ' ', '1', '0', ' ', '2', '\n']).split()))

Разбейте его по частям, чтобы увидеть, что происходит

>>> data = ['1', ' ', '1', '0', ' ', '2', '\n']
>>> data = ''.join(data)
>>> data
'1 10 2\n'
>>> data = data.split()
>>> data
['1', '10', '2']
>>> data = list(map(int, data))
>>> data
[1, 10, 2]

Пример для других входных данных:

>>> list(map(int, ''.join(['1', '2', ' ', '3', ' ', '4', '5', '6']).split()))
[12, 3, 456]
0 голосов
/ 21 октября 2019

Вы можете сделать это с помощью следующего oneliner:

x = ['1', ' ', '1', '0', ' ', '2', '\n']
new_x = [int(i) for i in x if i.isdigit()]
print(new_x)

Я использовал понимание списка, чтобы создать новый список. В результате вы получите список цифр, почему вы присоединились ко вторым 1 и 0 не ясно.

...