2013-03-05 60 views
0

對於我的任務,我不得不兩次分裂列表: 我需要使用「+」分裂來自輸入線的地址字符串,然後分割在結果列表中的最後一部分「」Python:將列表拆分兩次?

in_file = open('yelp-short.txt') 

def parse_line(text_file): 
    a = text_file.strip('\n') 
    b = a.split('+') 
    c = b.split(',') 
    print c 

我得到的錯誤:「名單」對象有沒有屬性「分裂」

我可以用哪些方式來做到這一點?

回答

1

提示是,你分割結果列表的最後部分

因此,要拉出來的最後一部分,並把它分解:

def parse_line(line): 
    line = line.strip('\n') 
    parts = line.split('+') 
    addrs = parts[-1].split(',') 
+0

謝謝,明白了! – LaffyTaffyKidd 2013-03-05 05:32:20

0

我會rpartition

>>> 'a+b+c,d,e'.rpartition('+')[-1].split(',') 
['c', 'd', 'e'] 

的問題是,你正在試圖分裂出一個列表,而不是一個字符串。您需要獲得特定項目的是列表:

b = a.split('+') 
c = b[-1].split(',') 
0

您對字符串應用split,並且它導致在列表中。因此,a是一個字符串,b是一個列表。你不能split的列表。假設a"X+Y,Z"b將成爲名單["X", "Y,Z"]。你想分裂的是b - b[1].split(',')列表中的第一個(正常人的第二個)元素。這樣就沒有錯誤。你也可以說「最後」,說b[-1]。它是相同的元素。