所以我有两个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)
我得到的列表来自这些邮件容器中的重复字段。