Разбейте строку 'abcde' на список с отдельными элементами - PullRequest
2 голосов
/ 04 октября 2011

У меня есть строка типа 'g fmnc wms bgblr rpylqjyrc gr zw fylb'.Я использую функцию .split() в python и получаю ['g', 'fmnc', 'wms', 'bgblr', 'rpylqjyrc', 'gr', 'zw', 'fylb']

Теперь я хочу разделить каждый элемент на отдельные списки, такие как: [['g'], [['f'],['m'],['n'],['c']],...] и т.разделить элемент ['abcbd'] на [['a'],['b'],['c'],['b'],['d']]

Ответы [ 3 ]

4 голосов
/ 04 октября 2011

Попробуйте:

[list(item) for item in s.split()]

Это даст вам [['g'], ['f', 'm', 'n', 'c'], ...], что не совсем то, что вы просили, но, вероятно, то, что вы имели в виду.

2 голосов
/ 04 октября 2011
>>> sample = 'g fmnc wms bgblr rpylqjyrc gr zw fylb'
>>> [ list(x) for x in sample.split() ]
[['g'], ['f', 'm', 'n', 'c'], ['w', 'm', 's'], ['b', 'g', 'b', 'l', 'r'], ['r', 'p', 'y', 'l', 'q', 'j', 'y', 'r', 'c'], ['g', 'r'], ['z', 'w'], ['f', 'y', 'l', 'b']]
0 голосов
/ 04 октября 2011
a='g fmnc wms bgblr rpylqjyrc gr zw fylb'
ml = lambda x: len(x) == 1 and [x] or map(ml, x)
print ml(a.split())

[['g'], [['f'], ['m'], ['n'], ['c']], [['w'], ['m'], ['s']], [['b'], ['g'], ['b'], ['l'], ['r']], [['r'], ['p'], ['y'], ['l'], ['q'], ['j'], ['y'], ['r'], ['c']], [['g'], ['r']], [['z'], ['w']], [['f'], ['y'], ['l'], ['b']]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...