Как разбить текст на список? - PullRequest
0 голосов
/ 25 октября 2018

Мои данные:

['I1 I2 I5', 'I2 I4', 'I2 I3', 'I1 I2 I4', 'I1 I3', 'I2 I3', 'I1 I3', 'I1 I2 I3 I5', 'I1 I2 I3']

но я хочу это так:

[['I1','I2', 'I5'], ['I2', 'I4'], ['I2' ,'I3'], ['I1',' I2', 'I4'], ['I1', 'I3'], ['I2', 'I3'], ['I1',' I3'], ['I1', 'I2','I3', 'I5'], ['I1', 'I2', 'I3']]

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

Ответы [ 3 ]

0 голосов
/ 25 октября 2018

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

inital = ['I1 I2 I5', 'I2 I4', 'I2 I3', 'I1 I2 I4', 'I1 I3', 'I2 I3', 'I1 I3', 'I1 I2 I3 I5', 'I1 I2 I3']

results = []
for i in inital:
    split = i.split(' ')
    results.append(splited)

print(results)

Best

0 голосов
/ 25 октября 2018
import numpy

mylist = ['I1 I2 I5', 'I2 I4', 'I2 I3', 'I1 I2 I4', 'I1 I3', 'I2 I3', 'I1 I3', 'I1 I2 I3 I5', 'I1 I2 I3']
myarray = numpy.asarray(mylist)
0 голосов
/ 25 октября 2018

Try

data = ['I1 I2 I5', 'I2 I4', 'I2 I3', 'I1 I2 I4', 'I1 I3', 'I2 I3', 'I1 I3', 'I1 I2 I3 I5', 'I1 I2 I3']

split_data = [item.split() for item in data]

print(split_data)
>>>[['I1', 'I2', 'I5'], ['I2', 'I4'], ['I2', 'I3'], ['I1', 'I2', 'I4'], ['I1', 'I3'], ['I2', 'I3'], ['I1', 'I3'], ['I1', 'I2', 'I3', 'I5'], ['I1', 'I2', 'I3']]

Функция split() класса string разделяет строку на массив строк.Если вы укажете входную строку в split, она разделит строку в соответствии с входными данными.то есть, если ваши данные были разделены запятыми, вы могли бы сделать:

print('I1,I2,I5'.split(',')) 
>>>['I1', 'I2', 'I5']

, но по умолчанию, без ввода, split() разделяет пробел и делает некоторые умные вещи вокруг того, что произойдет, еслиприсутствует несколько пробелов.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...