Как преобразовать список слов в строку предложения?
У меня есть этот список
[['obytay'], ['ikeslay'], ['ishay'], ['artway']]
где мне нужно, чтобы он выглядел как
obytay ikeslay ishay artway
Может ли кто-нибудь помочь? Я попытался использовать join
, но я не могу заставить его работать.
Ответы
Ответ 1
У вас есть список в списке, чтобы он не работал так, как вам кажется. Однако ваша попытка была абсолютно правильной. Сделайте это следующим образом:
' '.join(word[0] for word in word_list)
где word_list - это ваш список, показанный выше.
>>> word_list = [['obytay'], ['ikeslay'], ['ishay'], ['artway']]
>>> print ' '.join(word[0] for word in word_list)
obytay ikeslay ishay artway
Tobey likes his wart
Ответ 2
Это список строк. Итак, вам нужно связать список строк, chain.from_iterable
, как этот
from itertools import chain
print " ".join(chain.from_iterable(strings))
# obytay ikeslay ishay artway
Это будет эффективно, если мы сначала преобразуем цепочку итерабельности в список, как этот
print " ".join(list(chain.from_iterable(strings)))
Ответ 3
Вы также можете использовать reduce
.
l = [['obytay'], ['ikeslay'], ['ishay'], ['artway']]
print " ".join(reduce(lambda a, b: a + b, l))
#'obytay ikeslay ishay artway'