我有一个文本文件,其中包含多个端口之间的电流,例如:
current from A:
B - 10
C - 6
Current from B:
A - 11
C - 4
Current from C:
A - 5
B - 5
我需要找到相同端口之间的平均电流,我的输出应该是这样的:
current A-B is 10.5
current A-C is 5.5
current B-C is 4.5
我在考虑使用嵌套的键值对。有没有其他方法可以用python解决这个问题?我想的代码是
import re
pat = re.compile("current from")
current = {}
with open(fileName) as f:
for line in f:
if pat.search(line):
key1 = (line.split()[2])
elif line != "\n" :
current[key1][line.split()[0]].append(line.split()[2])
for key1 in current:
for key2 in current[key1]:
avg = ((current[key1][key2] + current[key2][key1])/2)
print("current " + key1 + "-" + key2 + " is " + str(avg))
这个怎么样
当我们使用re时,让我们尽量使用它,或者至少尽我所能:)
首先,我把整个文件在
current from
处分开,这样就得到了从那里提取更容易,在
:
处拆分以获得第一个字母,finall
以获得成对的字母并相应地处理它们一旦我们以上面显示的格式从文件中得到数据,就轮到把它们成对地分组了,由于顺序不相关,我把它们打包成一个
frozenset
,这样它们就可以用作字典键,对于所说的字典,我使用一个defaultdict
的列表,一旦所有的东西都打包好了,剩下的就是小菜一碟相关问题 更多 >
编程相关推荐