作者gasolin (小g)
看板Python
標題Re: [問題] 請問有關擷取資料的問題?
時間Wed Jun 18 10:46:45 2008
※ 引述《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