Python:比较两组并将结果写入第三组

时间:2014-07-29 15:00:10

标签: python csv set

所以这就是我所拥有的,我认为我所寻找的是非常直截了当的。我希望能够将c2中不在c1中的项目添加到c3中。设置c1和c2正确填充。任何帮助表示赞赏。感谢。

import csv
import sys
c1 = set()
c2 = set()
c3 = set()

with open(new, 'r') as newfile:
    newreader = csv.reader(newfile, delimiter=('|'))
    for row in newreader:
        c1.add(row[0])

with open(new, 'r') as oldfile:
    oldreader = csv.reader(oldfile, delimiter=('|'))
    for row in oldreader:
        c2.add(row[0])

for item in c2:
    if item not in c1:
        c3.add(item)

print(c1)
print(c2)
print(c3)

3 个答案:

答案 0 :(得分:5)

尝试:

c3 = c2 - c1

很容易。

甚至:

c3 |= c2 - c1

如果c3已经有一些内容。

请参阅:https://docs.python.org/2/library/sets.html

答案 1 :(得分:1)

您可以直接减法,例如c3 = c2 - c1,也可以使用difference()功能,即c3 = c2.difference(c1)。它们都非常易读,我认为它们最终会做同样的事情。

答案 2 :(得分:1)

您可以使用set.difference()方法:

c3 = c2.difference(c1)

也可以写成

c3 = c2 - c1

查看所有set方法here