看板 Python 關於我們 聯絡資訊
※ 引述《clara830 (...)》之銘言: : 不好意思再請教一個進階的問題.... : 假設我現在有一個list是這樣: : text = ['ABCD:from XXX X 12(V) XXX', 'EF:XXX XX', 'GH: from XXX XX 345(V) XX'] : 比如說我現在想要讓程式判斷 : : 如果裡面有包含'from'的話 : 就把其中冒號前面的字串找出來 以及找出其中(V)前面的字串 : 以這個例子來說的話 也就是希望擷取出 [(ABCD, 12), (GH, 345)] : 好像有點複雜.....不知道這有辦法寫出來嗎? : 現在好像還想不到怎麼解決 跟前面的回答基本一樣 store = [] text = [....] for i in text: if 'from' in i: seg = i.split(':') first_param = seg[0] second_param = seg[1].split('(V)')[0] store.append((first_param, second_param)) print store -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.75.133
gasolin:可以改成 seg[1].split('(V)')[0].split()[-1] 06/18 10:50
gasolin:如果還有更複雜的建議你學 pyparsing...不在意速度的話 06/18 10:54
liangjr:我會想用regular expression耶 06/18 13:49
liangjr:"(.*):from .* (\d+)\(V\).*"之類的 06/18 13:52
clara830:謝謝!!我再仔細研究一下~ 06/18 19:27
clara830:請問如果把text裡面改成GH: from XXX XX 345(V) XX 67(V) 06/19 10:49
clara830:好像只找的到345而沒找到67? 06/19 10:50
huggie:那當然啊..他的code只抓前一個呀.我看你得好好打基礎 06/19 13:13