我有一个excel文件,其中有一些列。
COL 1 | COL 2 | COL 3
ABCD | ABC(D) | CDA
AB CD | ABC D | C D - (B)
A B C D | (ABCD) | ABCD
ABC D | ABDC | ABC D
A(BC ) D | AD B - C| AB CD
我想将每列与每个其他列进行比较,并希望打印列之间的相似点和不同点。
例如:
比较COL 1和COL 2
相似之处:None
差异:
ABCD
AB CD
A B C D
A(BC ) D
ABC(D)
ABC D
(ABCD)
ABDC
AD B - C
然后比较COL 2和COL 3,然后比较COL 1和COL 3。 只需要精确的字符串匹配,即使是被视为不匹配的空格。 列数可能会增加,比较从列的第2行开始。
如何在Python中实现这种递归比较,从而为我提供快速处理输出?
答案 0 :(得分:2)
您可以使用xlrd
。首先,阅读文件中的内容。其次,将三列保存为三个词典,因为dict比较快。第三,做比较工作并输出结果。
我建议你检查xlrd的API并自己编写代码。这是link。
如有任何问题,请随时提出。
修改强>
这是一个例子。
#!/usr/bin/python
#-*- coding:utf-8 -*-
name = {1:'a', 2:'b', 3:'c'}
lname = {1:'g', 2:'b', 3:'v'}
common = {}
diff_name = {}
diff_lname = {}
for key in name.keys():
if name[key] == lname[key]:
common[key] = name[key]
else:
diff_name[key] = name[key]
diff_lname[key] = lname[key]
print 'common part is:', common
print 'diff_name is: ', diff_name
print 'diff_lname is: ', diff_lname
答案 1 :(得分:1)
算法可能
for colA in range(0, N):
for colB in range (colA + 1, N - 1):
compare(colA, colB)