2014-04-27 41 views
0
沒有用引號括起來行字符串中使用枚舉()

我想對內存的字符串中使用enumerate()已經(因此不從文件),該字符串已逗號分隔值(或空間,但統一,即不包含逗號和空格的混合)。 基本上我只想得到整條線n,與第一部分this問題非常相似。試圖與在Python

如果我做我的字符串print(進入函數之前),它顯示了這樣的事情:

89,abc,def01,ghi23 
01,jkl,mno45,pqr67 

但是這個代碼不工作,大概是因爲我的臺詞不是分別由引號括起來:

def pickline(thestring, whatline): 
    for i, line in enumerate(thestring): 
    if i == whatline: 
     return line 

問題:我應該怎麼做才能做到這一點?

編輯預期的輸出應該是:

# string 
89,abc,def01,ghi23 
# if whatline value is 0, 
# or string 
01,jkl,mno45,pqr67 
# if whatline value is 1, 
# etc. 
+3

什麼是您預期的輸出? – thefourtheye

+1

迭代字符串按字符逐個進行。行情與它毫無關係。如果您需要在逗號之間遍歷塊,請使用'.split(「,」)'或'csv'模塊。 – geoffspear

+0

你的字符串是否包含換行符,或者是來自兩個不同字符串的示例輸入的兩行? –

回答

1

你必須先分割字符串成線。

for i, line in enumerate(thestring.splitlines()): 

然而,更好的方法來做到這一點是要做到這一點:

def pickline(thestring, whatline): 
    return thestring.splitlines()[whatline]