Разница между union() и union update () в наборах и другими?

наборы Python имеют следующие методы:

s.union(t)  s | t   new set with elements from both s and t

s.update(t) s |= t  return set s with elements added from t

аналогично, есть и такие:

s.intersection_update(t)    s &= t  return set s keeping only elements also found in t

s.intersection(t)   s & t   new set with elements common to s and t

и так далее, для всех стандартных операций реляционной алгебры.

так...вопрос в том, в чем именно здесь разница? Я вижу, что он говорит, что версии update () возвращают s вместо нового набора, но если я напишу x = s.update(t), означает ли это, что id(x) == id(s)? Теперь они ссылаются на один и тот же объект?

Я имею в виду, я действительно не понимаю, почему оба набора методы реализованы. Кажется, он не добавляет никакой существенной функциональности.

1 ответов


они очень - разному. Один набор изменяет набор на месте, в то время как другой оставляет исходный набор в покое и возвращает скопировать.

>>>