#python #python-2.7
#python #python-2.7
Вопрос:
У меня есть строка, подобная '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']]
Комментарии:
1.
[['g'], [['f'],['m'],['n'],['c']],...]
кажется неправильным. Буква «g» находится внутри двух вложенных списков, но буква «f» находится внутри трех вложенных списков.
Ответ №1:
Попробуйте это:
[list(item) for item in s.split()]
Это даст вам это [['g'], ['f', 'm', 'n', 'c'], ...]
, что не совсем то, что вы просили, но, вероятно, то, что вы имели в виду.
Комментарии:
1. Чувак, ты ответил примерно за 16 секунд. Как это вообще возможно? Проводите ли вы опрос на новые вопросы?
Ответ №2:
>>> 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']]
Ответ №3:
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']]]