我知道标题令人困惑,我不知道如何解释,所以这里有一个更好的解释:
我有一个文件,其中每一行的写法如下:
一、二、三
其中 a、b 和 c 是数字。在这里,数字 a 无关紧要。这里,b 应该是某种坐标,c 是一个组号。
对于每个 c,我需要找到该组所做的每种动作的计数。
例如,假设我的文件是这样的:
23,20,789
25,7,789
29,7,789
32,20,789
0,2,870
3,40,870
所以我需要计算 789 组从 1 到 1、1 到 2、...、7 到 7、... 20 到 7、20 到 8、... 等等,直到 117 到 117 移动了多少次. 并为每个组执行此操作。
当然,会有很多零是可以的。所以例如在这里我应该找到:
对于 789 组:1 从 20 到 7,1 从 7 到 7,1 从 7 到 20,0 移动所有其他组合的运动。
对于 870 组:1 从 2 移动到 40 和 0 为所有其他组合移动。
我希望很清楚。
我知道我应该放我开始做的事情,但那是我的问题。我真的不知道从哪里开始。我的意思是我知道如何计算一个数字或一个字符串在文本中出现的次数,但要计算变化,尤其是按组计算,我不知道从哪里开始。
我希望你至少可以帮助我开始。
谢谢
编辑:感谢@Tojrah,这就是我现在所拥有的
f1=open("My_file_where_the_coordinates_for_one_group_are_all_in_one_line.txt","r")
f2=open("File_of_counts.txt","a")
line=f1.readline()
s=line.split()
count=0
for i in range (0,len(s)-1):
for j in range (1,len(s)-1):
if s[j]==s[i] and s[j+1]==s[i+1]:
count+=1
f2.write("from {} to {} , result= {}\n".format(s[i], s[i+1], count))
count=0
f1.close()
f2.close()
但你肯定能猜到,这里是部分显示的结果:
from 20 to 7 , result= 5
from 7 to 7 , result= 9
from 7 to 20 , result= 6
from 20 to 20 , result= 28242
from 20 to 20 , result= 28242
from 20 to 20 , result= 28242
from 20 to 20 , result= 28242
您可以看到计数很好,但它多次计算相同的动作。如何阻止它计算已经计算的动作?
编辑 2:以下是我对 @Tojrah 的代码所做的更改:
for i in range (1,118):
for j in range (1,118):
count=0
for k in range (0, len(s)-1):
if (str(i)==s[k] and str(j)==s[k+1]):
count+=1
f.write("from {} to {} , result= {}\n".format(i, j, count))
count=0
现在它工作得很好。
翻阅古今
相关分类