1

したがって、2 つの protorpc.messages.FieldList があります。2 つのリストのフィールド (フィールド クラス) の対称的な違いを計算したいと思います。次のコードを実行してみました。

list1 と list2 は私の FieldLists で、それぞれに 3 つの要素があります。そのうちの 2 つは同じで、そのうちの 1 つは違いです。出力が異なる要素を提供してくれることを期待しています。次のコードを実行しました。

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

ただし、変数の差は、6 つのフィールドすべてを保持することになりました。

次の方法で試してみると、期待どおりに機能しました。

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

私の質問は、Python は 2 つのセット間の対称差をどのように計算するのでしょうか? 等式 (値による) を利用するか、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)

私が取得しているリストは、これらのメッセージ コンテナの繰り返しフィールドからのものです。

4

0 に答える 0