Разница между 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 ответов
они очень - разному. Один набор изменяет набор на месте, в то время как другой оставляет исходный набор в покое и возвращает скопировать.
>>>