仅在列之间匹配数据一次

时间:2014-01-15 06:52:26

标签: python

最近,我需要编写几个使用类似算法的程序。

这就是我想要做的事情:

对于具有多个列(即10个)的电子表格,我想比较两个特定列中的单元格之间的信息,并仅附加信息。当根据我的设定标准存在匹配时,来自两个特定单元格。

我尝试使用嵌套的if语句来设置我的标准,但问题是这个方法不考虑重复的交叉引用。

例如,假设我有两列:
Column A (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
Column B (X, Y, Z, 1, 2, 3, 3, 4, 5, 7)

然后当循环在嵌套的if语句上运行时,它会将number 4中的column Anumber 4中的column B匹配一次(这将是正确的) ),但它会使number 3中的column Anumber 3column B的{​​{1}}匹配,这是我不想要的。

我想说的是,一旦程序找到循环中特定单元格集的匹配项,我希望它在循环继续时将它们排除在考虑范围之外。

关于如何完成这样的事情的任何想法?

2 个答案:

答案 0 :(得分:2)

您可以使用set arithmetics进行尝试。寻找文档:http://docs.python.org/2/library/stdtypes.html#frozenset

frozenset(('a', 'b', 'c', 4)) - frozenset((4, 5))
>> frozenset(['a', 'c', 'b'])

答案 1 :(得分:1)

我认为您正在寻找break声明。所以,像这样:

for x in first_cell:
    for y in second_cell:
       if x == y:
           # Found match -- do something
           break

break语句跳出内循环。因此,一旦找到匹配项,您就会停止检查第二个单元格中的项目。它将继续外循环(因此,检查第一个单元格中的下一个项目。)