2017-02-14 2 views
-2

Поэтому у меня есть список из 3-х гигантских строк, такие как:Как разбить список гигантской одной строки на отдельные подстроки

lst=['Mary,had,"3",little-lambs','Mary,sold-her,"3",lambs,away','Mary,was,sad'] 

, что список имеет гигантские строки, но я хочу, чтобы разделить эти строки в Отделите небольшие строки в списке (так что для первого я хочу:

ls=['Mary','had','3','little','lambs'] 

и так далее я попытался

.split 

, но я. t wont работать, потому что его список и это строковый метод. Мне нужен совершенно непитонический способ, пожалуйста. (Кроме того, если кто-нибудь может помочь со следующим шагом, я Тринг поставить последнее значение (в данном случае ягнят, прочь, грустная в словарь в качестве ключей к мэри Например, как:.

dictionary={"lambs": "Mary","away":"Mary","sad":"Mary"} 

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

Edit: Я использовал для цикла и разделить каждую вещь и приложил его к новому списку, но результат создает список из списка строк

lst1=[] 
for item in lst: 
    item=item.split(",") 
    lst1.append(item) 
print(content) 
print(lst1) 

lst1=[['Mary','had','3','little','lambs']] 

Я пытаюсь избежать создания списка внутри другого списка, потому что я не знаю, как индексировать каждую часть его, чтобы создать словарь я упоминал ранее

+0

Вы можете перебирать список и применять .split для каждой строки. – synchronizer

+1

Почему вам нужен совершенно непифонный способ? –

+0

он должен быть непитоновым, потому что мы делаем только простую кодировку прямо сейчас (im принимаем intro comp sci) – Jasper

ответ

-1

EDIT: Изменены раскол быть re.split включая regex специально для символов «,» и «-». Должна быть изменена в соответствии с необходимыми разделителями. Это даст вам словарь, который вам нужен. Вы можете добавить tokens в отдельный список, чтобы получить список отдельных слов в строке.

import re 
last_keys = dict() 
for item in lst: 
    tokens = re.split(r',|\-', item) 
    last_keys[tokens[-1]] = "Mary" 
+0

Это не будет выделять «маленьких ягнят». – vendaTrout

+0

@vendaTrout Вы правы. Вместо этого добавлен re.split(). Спасибо! – Neelik

+0

Мы еще не узнали о 're', что-нибудь еще? – Jasper

-1

Просто используйте re.split() в приведенном выше ответе.

import re 
last_keys = dict() 
for item in lst: 
    tokens = re.split('-|,',item) 
    last_keys[tokens[-1]] = "Mary" 

last_keys 
{'lambs': 'Mary', 'away': 'Mary', 'sad': 'Mary'} 
Смежные вопросы