#python #list
#python #Список
Вопрос:
Я извлек набор данных из HTML-страницы и скопировал в переменную. Переменная выглядит следующим образом
names='''
Apple
Ball
Cat'''
Теперь мне нравится объединять каждую строку в список, чтобы я мог получить доступ к любой строке, которую я хочу. Есть ли какой-либо способ сделать это в Python
Ответ №1:
Использование splitlines() для разделения по символу новой строки и strip() для удаления ненужных пробелов.
>>> names='''
... Apple
... Ball
... Cat'''
>>> names
'n Applen Balln Cat'
>>> names_list = [y for y in (x.strip() for x in names.splitlines()) if y]
>>> # if x.strip() is used to remove empty lines
>>> names_list
['Apple', 'Ball', 'Cat']
Комментарии:
1. примечание: это не будет правильно разделено по строкам, если в какой-либо строке есть пробел (или другой символ пробела)
2. Я использую python 2.6.6, и в этом он отлично работал. Было бы полезно, если бы вы могли привести мне пример.
3. @wim 1 я согласен — по умолчанию
split
в качестве разделителя будет использоваться пробел. @topcoder: попробуйте поместить в первую строку запись с пробелом или табуляцией.4.
names_list = [x for x in (y.split() for y in names.splitlines()) if x]
так вы вызываетеsplit
один раз 🙂5. На самом деле я предпочитаю более раннюю версию, которая вызывает split дважды, она более удобочитаема, и я сомневаюсь, что это критичный к производительности код, который нуждается в микрооптимизации.
Ответ №2:
names.splitlines()
должно дать вам именно это.
Комментарии:
1. Если в каждой строке действительно есть пробелы и пустая первая строка, все еще нужно выполнить постобработку.
2. Верно. Я не знаю, является ли это игнорируемым пробелом для варианта использования OP.
Ответ №3:
names.split('n')
должен дать вам список, разделенный на ‘ n’
Комментарии:
1. Слабость в том, что его платформа может иметь более сложное окончание строки, чем просто
'n'
.