作者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
1F:→ gasolin:可以改成 seg[1].split('(V)')[0].split()[-1] 06/18 10:50
2F:→ gasolin:如果还有更复杂的建议你学 pyparsing...不在意速度的话 06/18 10:54
3F:推 liangjr:我会想用regular expression耶 06/18 13:49
4F:→ liangjr:"(.*):from .* (\d+)\(V\).*"之类的 06/18 13:52
5F:推 clara830:谢谢!!我再仔细研究一下~ 06/18 19:27
6F:推 clara830:请问如果把text里面改成GH: from XXX XX 345(V) XX 67(V) 06/19 10:49
7F:→ clara830:好像只找的到345而没找到67? 06/19 10:50
8F:推 huggie:那当然啊..他的code只抓前一个呀.我看你得好好打基础 06/19 13:13