Составление списка первой строки и всего остального из строки

1

Существует строка:

str = "first line\n xxxxxxxxxxxxx\n zzzzzzzzzzzzzzz"

Мне нужно получить список с двумя элементами: первая строка и все остальное:

list = ['first line\n', ' xxxxxxxxxxxxx\n zzzzzzzzzzzzzzz']

Как я могу это сделать?

Теги:

3 ответа

8
Лучший ответ
print str.split('\n', 1)
['first line', ' xxxxxxxxxxxxx\n zzzzzzzzzzzzzzz']

Первый элемент не имеет "\n", если вы хотите его сохранить:

splited = str.partition('\n') 
print [splited[0] + splited[1], splited[2]]
['first line\n', ' xxxxxxxxxxxxx\n zzzzzzzzzzzzzzz']

И не назовите свою строку str, потому что вы будете теневой тип str, ни ваш список list:)

  • 0
    но с этим '\ n' не будет частью первого элемента в результирующем списке
  • 0
    @sateesh: Да, я видел это, только что исправил :)
Показать ещё 3 комментария
2
>>> s = "first line\n xxxxxxxxxxxxx\n zzzzzzzzzzzzzzz"
>>> s=s.splitlines(True)
>>> s=[s[0],"".join(s[1:])]
>>> s
['first line\n', ' xxxxxxxxxxxxx\n zzzzzzzzzzzzzzz']

используя "True" в качестве параметра для разделительных линий, указывает, что он должен "держать концы"

  • 0
    Я изменил имя переменной с "str" на "s", чтобы избежать затенения. Кто-то проголосовал против меня из-за этого
  • 0
    +1, Вы не заслуживаете того, чтобы быть опущенным IMO :)
2
>>> str = "first line\n xxxxxxxxxxxxx\n zzzzzzzzzzzzzzz"
>>> str.split('\n', 1)
['first line', ' xxxxxxxxxxxxx\n zzzzzzzzzzzzzzz']
  • 0
    Не очень хорошая идея использовать str как переменную, но все равно +1.
  • 0
    Я думаю, он хотел, чтобы \ n оставалось в конце первой строки
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню