鉴于一些代码:
keyword=re.findall(r'ke\w+ = \S+',s)
score=re.findall(r'sc\w+ = \S+',s)
print '%s,%s' %(keyword,score)
Run Code Online (Sandbox Code Playgroud)
上面代码的输出是:
['keyword = NORTH','keyword = GUESS','keyword = DRESSES','keyword = RALPH','keyword = MATERIAL'],['得分= 88466','得分= 83965','得分= 79379' ,'得分= 74897','得分= 68168']
但我希望格式应该是不同的行:
NORTH,88466
GUESS,83935
DRESSES,83935
RALPH,73379
MATERIAL,68168
Run Code Online (Sandbox Code Playgroud)
而不是最后一行,改为:
>>> for k, s in zip(keyword, score):
kw = k.partition('=')[2].strip()
sc = s.partition('=')[2].strip()
print '%s,%s' % (kw, sc)
NORTH,88466
GUESS,83965
DRESSES,79379
RALPH,74897
MATERIAL,68168
Run Code Online (Sandbox Code Playgroud)
下面是它的工作原理:
的拉链带来的相应的元件一起成对.
的分区分割像字符串'keyword = NORTH'分成三个部分(等号,等号本身,和之后的部分之前的部分.所述[2]保持只有后者的一部分.
所述条带移除的前缘和后空格.
或者,您可以使用组捕获关键字和分数而不包含周围文本,从而修改正则表达式以完成大部分工作:
keywords = re.findall(r'ke\w+ = (\S+)',s)
scores = re.findall(r'sc\w+ = (\S+)',s)
for keyword, score in zip(keywords, scores):
print '%s,%s' %(keyword,score)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
241 次 |
| 最近记录: |