最近,我需要编写几个使用类似算法的程序。
这就是我想要做的事情:
对于具有多个列(即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 A
与number 4
中的column B
匹配一次(这将是正确的) ),但它会使number 3
中的column A
与number 3
中column B
的{{1}}匹配,这是我不想要的。
我想说的是,一旦程序找到循环中特定单元格集的匹配项,我希望它在循环继续时将它们排除在考虑范围之外。
关于如何完成这样的事情的任何想法?
答案 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
语句跳出内循环。因此,一旦找到匹配项,您就会停止检查第二个单元格中的项目。它将继续外循环(因此,检查第一个单元格中的下一个项目。)