2016-07-29 9 views
-3

Я знаком с функцией split и я хотел бы использовать его в качестве такового:Что означает этот оператор (строка, str) = str.split (" n", 1)?

str = "Line1-abcdef \nLine2-abc \nLine4-abcd" 
print str.split() 

выше будет возвращать это:

['Line1-abcdef', 'Line2-abc', 'Line4-abcd'] 

Простой и легкий. Тем не менее, я наткнулся на кусок кода, который имеет это заявление:

(line, str) = str.split("\n", 1) 

Есть две вещи, которые я не понимаю здесь:

  1. Второй параметр split и что это делает. Я посмотрел 10, и он говорит, сколько строк сделано. Что это значит?

  2. split возвращает итерируемый вектор. Почему он присваивается (line, str)? Что здесь означает (line, str)?

+2

Если вам интересно, почему бы вам не попробовать ** его? –

+0

Прочтите документацию, которую вы указали более тщательно, особенно пример, вы поймете. –

+0

См. [Здесь] (https://docs.python.org/2/library/stdtypes.html#str.split) для того, как работает split. – khelwood

ответ

5

Второй аргумент maxsplit=1 означает стоп расщеплению после выполнения сепаратора \n раз.

Поэтому у вас есть только две части, ваша линия и остальная часть строки.


Например:

str = 'This is one line\nThis is a second line\nThis is a third line' 
(line, str) = str.split('\n', 1) 
print(line) 
# 'This is one line' 
print(str) 
# 'This is a second line\nThis is a third line' 
+0

спасибо за освобождение, что до –

+1

Очень жаль, что в python2 аргумент maxsplit не может быть передан по ключевому слову. Это исправлено в python3, где вы * можете * написать 'str.split ('\ n', maxsplit = 1)' и сделать код более самостоятельным документированием. – Bakuriu

0

Тестирование с основной строки, how do you do ?. line получит первый элемент раскола, а str получит остальное (как только мы разложим один раз)