2016-07-29 38 views
-3

我熟悉split功能,我會用它作爲這樣的:這條語句(line,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什麼,做第二個參數和。我看着here,它表示所做的行數。那是什麼意思?

  2. split返回一個可迭代的向量。爲什麼它被分配到(line, str)(line, str)這是什麼意思?

+2

如果您好奇,爲什麼不嘗試**呢? –

+0

仔細閱讀你指出的文檔,特別是這個例子,你會明白的。 –

+0

請參閱[這裏](https://docs.python.org/2/library/stdtypes.html#str.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將獲得其餘(因爲我們只拆分一次)