Разделение слов в списке - PullRequest
0 голосов
/ 19 февраля 2020

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

Вот мой код:

text = ['a,b', 'c,d']
text = text.replace(',', ' ')
for i in text:
  print(text.split())

Когда я запускаю его, появляется ошибка, и когда я пытаюсь преобразовать список в строку, появляются случайные дополнения, такие как \ n , ' и [] , которые не должны быть там.

Ожидаемый результат: Я хочу, чтобы результатом был список, содержащий ['a', 'b', 'c', 'd'], который при печати , приходит с этим.

Ошибка появляется на второй строке и говорит:

AttributeError: у объекта 'list' нет атрибута 'replace'

Ответы [ 6 ]

3 голосов
/ 19 февраля 2020

Ну, вы можете сделать это легко, но сначала вы должны прочитать, что именно делает функция split.

newList = []
for i in text:
    words = i.split(',')
    newList.extend(words)
print(newList)

Вот некоторая полезная информация, Python list extension , Итерирование по списку .

Plus , Для list s нет метода с именем replace, этот метод работает для String s.

1 голос
/ 19 февраля 2020
your_list = [ x for sublist in text for x in sublist.split(',') ]
0 голосов
/ 19 февраля 2020

Может быть, это?

>>> from itertools import chain
>>> text = ['a,b', 'c,d']
>>> list(chain(*[item.split(',') for item in text]))
['a', 'b', 'c', 'd']
0 голосов
/ 19 февраля 2020

Вы можете сделать следующее:

text = ['a,b', 'c,d']
text_str = "".join(text).replace(",", "")
arr = [c for c in text_str]

это немного многословно, но это шаги

0 голосов
/ 19 февраля 2020

Еще один подход:

text = ['a,b', 'c,d']
text = ','.join(text)
text = text.split(',')
print(text)
# ['a', 'b', 'c', 'd']
0 голосов
/ 19 февраля 2020

Для списка нет функции replace. Я думаю, что вам нужно разделить запятую:

text = ['a,b', 'c,d']
result = []
for i in text:
  result.extend(i.split(','))

Обратите внимание, что второе изменение, которое я сделал, - это печать i - вещь, которая повторяется в отличие от целого text. Кроме того, я вызываю extend в результате, чтобы создать единый список.

...