python如何设置计算差异?

时间:2014-11-25 05:20:12

标签: python google-app-engine set protorpc

所以我有两个protorpc.messages.FieldList。我想计算两个列表中字段(字段类)之间的对称差异。我尝试了以下代码。

list1和list2是我的FieldLists,它们各有三个元素。其中两个是相同的,其中一个是不同的。我希望输出给我不同的元素。我运行了以下代码。

set1 = set(list1)
set2 = set(list2)
difference = set1 ^ set2

然而,变量差异最终占据了所有六个字段。

当我尝试使用以下方法时,它按预期工作。

difference = []
for item in list1:
  if item not in list2:
    difference.append(item)

所以我的问题是,Python如何计算两组之间的对称差异?它是利用相等(按值)还是使用in运算符(通过引用)?我还没有看到其他的东西吗?

编辑以添加示例(这受protorpc文档的启发):

https://cloud.google.com/appengine/docs/python/tools/protorpc/?csw=1#Adding_Message_Fields

class GetNotesRequest(messages.Message):
    notes= messages.SomeCustomField(1, repeated=true)

我得到的列表来自这些邮件容器中的重复字段。

0 个答案:

没有答案