【发布时间】:2012-01-18 00:35:22
【问题描述】:
我有一长串包含 4 条信息的字符串。我通过在空白处拆分它们来索引它们。不幸的是,在一些字符串中,第二条信息中也有一个空格。我希望能够删除两个冒号之间出现的任何空格。这里从列表中的几个项目来演示:
国外a:at:n请求1
在国外 a:at:n 沉默 1
在国外 a:at:n 时间 6
国外a:because of:n schedule 1
国外a:by:n 美国1
国外a:by:n银行1
国外a:by:n吹1
所以,我的问题出现在上面的第 4 行。显然我可以手动删除空间来解决问题,但列表是数千行。另外,我可以编写代码,用“becauseof”替换任何出现的“because of”,但这并不是唯一出现的两个单词序列。此外,第三个切片有时包含“因为”,我想在那里保留空格。我当前的代码试图返回每个序列的频率,如下所示:
import sys
import pprint
occ_list = []
observed = {}
lines = sys.stdin.readlines()
for line in lines:
l = line.strip()
i = l.split(' ')
word = i[0]
rel = i[1]
wirts = i[2:-1]
wirt = ' '.join(wirts) # Word-in-relation-to (which may be compund)
occ = i[-1] # Frequency of specific "word, rel, wirt"
arb = (word, rel, wirt)
occ_list.append(int(occ))
if not arb in observed.keys():
observed[arb] = []
if not occ in observed[arb]:
observed[arb].append(int(occ)/float(1064542))
pprint.pprint(observed)
除了前面提到的带有额外空格的行之外,这有效。
如果有任何建议,我将不胜感激。 (我正在使用python 3.2) 谢谢
【问题讨论】:
标签: python python-3.x