文件中的数据格式如下:
+1 1:4 2:11 3:3 4:11 5:1 6:13 7:4 8:2 9:2 10:13
-1 1:2 2:7 3:4 4:12 5:3 6:4 7:3 8:12 9:2 10:12
+1 1:4 2:6 3:3 4:2 5:3 6:5 7:4 8:2 9:3 10:6
等等。。。。你知道吗
其中冒号左边的数字是“索引”,冒号右边的数字是描述某个属性的整数。对于每一行,如果冒号右边的数字对于另一行的同一索引是相同的,我想将+1和-1的总量存储在两个单独的变量中。这是我目前的代码:
for i in lines:
for word in i:
if word.find(':')!=-1:
att = word.split(':', 1)[-1]
idx = word.split(':', 1)[0]
for j in lines:
clas = j.split(' ', 1)[0]
if word.find(':')!=-1:
if idx ==word.split(':', 1)[0]:
if att ==word.split(':', 1)[0]:
if clas>0:
ifattandyes = ifattandyes+1
else:
ifattandno = ifattandno+1
我的问题是att和idx似乎没有像我想的那样更新word.查找(“:”)只找到冒号的第一个实例并与之一起运行。有人能帮忙吗?你知道吗
编辑:
上述解释令人困惑。我对1和-1的计数有点固执。当每行上的每一对都被读取时,我想在数据中搜索该对所涉及的+1和-1的数目,并将它们存储到两个单独的变量中。这样做的原因是计算每对导致+1或-1的概率。你知道吗
以下是一个建议(前提是我正确理解了问题):
适用于以下数据:
它给出:
我不知道我有没有这个。你知道吗
这做不到的,但可以很容易地做到的,是剥离收件人:val pairs没有找到匹配的。你知道吗
但我不确定我是否正确理解你的要求。你知道吗
我将创建这个社区wiki,因为它与已经发布的答案太接近(无论如何,在精神上),但它有一些优点:
产生
请注意,任何地方都没有对
+1
或-1
的引用;sign
可以是任何东西。你知道吗相关问题 更多 >
编程相关推荐