Я очищаю сайт, где у меня есть список абзацев внутри класса. когда я печатаю только текст внутри абзацев, все в порядке. Но если я хочу сохранить их в список, я получаю None.
Чтобы просмотреть все эти абзацы, я использую метод find_all с циклом. Как я могу получить реальный текст, строку и сохранить ее в списке.
listagoala = []
col_moneda = container_fluid.find('div', class_='col-sm-2 hidden-xs')
moneda = col_moneda.find_all('p')
for paragraphs in moneda:
listaplina = listagoala.append(paragraphs.text)
print(listaplina)
ВЫХОД:
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None






Примечание для читателя: этот ответ относится к исходной версии вопроса, в которой была следующая строка: listaplina = [paragraphs.text].extend(listagoala).
list.extend() не возвращает измененный список. Он возвращает None (изменив список на месте).
Похоже, вы ищете следующее:
listaplina = [paragraphs.text] + listagoala
@mihai: Пожалуйста, не меняйте свой вопрос. Это делает ответы недействительными и наказывает тех, кто пытается вам помочь.
Выход почти хороший. Но в результате получается 16 списков, в каждом из которых всего 1 элемент. Я хотел бы сохранить тему в один список.
почему бы просто не сделать
listagoala = []
col_moneda = container_fluid.find('div', class_='col-sm-2 hidden-xs')
moneda = col_moneda.find_all('p')
for paragraphs in moneda:
listagoala.append(paragraphs.text)
print(listagoala) # Using print here will print multiple lists, as this is inside loop
print(listagoala) # print the final list with all elements
Вам не нужно делать
listaplina = listagoala.append(paragraphs.text)
listagoala.append(paragraphs.text) будет работать.
Просто для вашего объяснения:
>>> a = [1,2,3,4]
>>> b = [5,6,7,8]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6, 7, 8]
>>>
мой окончательный список должен состоять из 16 элементов. Вывод состоит из 16 списков, где первый список имеет 1 элемент, второй - 2 элемента ... 16-й имеет 16 элементов, поэтому это не лучший результат. я не очень хорошо знаком со структурами данных... извините за эти глупые вопросы.
Не совсем понял, что вы имеете в виду здесь. Вы сказали, что на выходе получается 16 разных списков?
да, у меня должен быть список из 16 элементов. но у меня есть 16 списков. Первый список имеет 1 элемент, второй список имеет 2 элемента.... до 16-го списка, который имеет 16 элементов...
поэтому из этого вывода мне понадобится только последний список, состоящий из 16 элементов.
@mihai IDK, почему вы получаете 16 разных списков, не могли бы вы опубликовать полный код, пожалуйста. Возможно, вы делаете что-то еще не так
ты прав, я тупой. Отступ был плохой. оператор печати должен иметь отступ того же уровня, что и оператор for.
@mihai Я также добавил комментарии для печати. Обновил ответ.
Извините, это была еще одна попытка, но я попробую ваш код, спасибо!