Hướng dẫn what is the difference between update and union in python? - sự khác biệt giữa cập nhật và liên kết trong python là gì?

Các bộ Python có các phương pháp sau:

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

Tương tự như vậy, cũng có những điều này:

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

Và như vậy, cho tất cả các hoạt động đại số quan hệ tiêu chuẩn.

Chính xác thì sự khác biệt ở đây là gì? Tôi thấy rằng nó nói rằng các phiên bản cập nhật () trả về s thay vì một bộ mới, nhưng nếu tôi viết x = s.update(t), điều đó có nghĩa là id(x) == id(s) không? Họ có tham khảo cùng một đối tượng bây giờ không?

Tại sao cả hai bộ phương thức được thực hiện? Nó dường như không thêm bất kỳ chức năng quan trọng nào.

Hướng dẫn what is the difference between update and union in python? - sự khác biệt giữa cập nhật và liên kết trong python là gì?

mkrieger1

16.2k4 Huy hiệu vàng50 Huy hiệu bạc58 Huy hiệu Đồng4 gold badges50 silver badges58 bronze badges

Hỏi ngày 16 tháng 12 năm 2012 lúc 21:27Dec 16, 2012 at 21:27

6

Họ rất khác nhau. Một bộ thay đổi tập hợp tại chỗ, trong khi bộ khác để lại bộ gốc một mình và thay vào đó trả về một bản sao.

>>> s = {1, 2, 3}
>>> news = s | {4}
>>> s
set([1, 2, 3])
>>> news
set([1, 2, 3, 4])

Lưu ý làm thế nào s vẫn không thay đổi.

>>> s.update({4})
>>> s
set([1, 2, 3, 4])

Bây giờ tôi đã thay đổi s. Cũng lưu ý rằng

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
0 dường như không trả lại bất cứ điều gì; Nó đã không trả lại s cho người gọi và trình thông dịch Python không lặp lại giá trị.

Các phương thức thay đổi đối tượng tại chỗ không bao giờ trả về bản gốc trong Python. Giá trị trả lại của họ luôn là

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
2 thay thế (không bao giờ được lặp lại).

Đã trả lời ngày 16 tháng 12 năm 2012 lúc 21:29Dec 16, 2012 at 21:29

Martijn Pieters ♦ Martijn PietersMartijn Pieters

997K279 Huy hiệu vàng3925 Huy hiệu bạc3264 Huy hiệu đồng279 gold badges3925 silver badges3264 bronze badges

3

Các phương thức

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
3 sửa đổi tập hợp tại chỗ và không trả về. Các phương thức không có
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
4 trả về một đối tượng mới. Bạn gần như chắc chắn không muốn làm x = s.update(t), vì điều đó sẽ đặ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
6 thành không ai.

>>> x = set([1, 2])
>>> x.intersection(set([2, 3]))
set([2])
>>> x
set([1, 2])
>>> x.intersection_update(set([2, 3]))
>>> x
set([2])
>>> x = x.intersection_update(set([2, 3]))
>>> print x
None

Chức năng được thêm vào các phương thức

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
3 là khả năng sửa đổi các bộ hiện có. Nếu bạn chia sẻ một tập hợp giữa nhiều đối tượng, bạn có thể muốn sửa đổi bộ hiện có để các đối tượng khác chia sẻ nó sẽ thấy các thay đổi. Nếu bạn chỉ tạo một bộ mới, các đối tượng khác sẽ không biết về nó.

Đã trả lời ngày 16 tháng 12 năm 2012 lúc 21:30Dec 16, 2012 at 21:30

Hướng dẫn what is the difference between update and union in python? - sự khác biệt giữa cập nhật và liên kết trong python là gì?

BrenbarnbrenbarnBrenBarn

235K35 Huy hiệu vàng399 Huy hiệu bạc376 Huy hiệu Đồng35 gold badges399 silver badges376 bronze badges

Có vẻ như các tài liệu không nêu rõ theo cách rõ ràng nhất có thể, nhưng

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
8 hoàn toàn không trả lại bất cứ điều gì (tương đương với việc trả lại
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
2), cũng không phải là ____. Như
>>> s = {1, 2, 3}
>>> news = s | {4}
>>> s
set([1, 2, 3])
>>> news
set([1, 2, 3, 4])
1 hoặc
>>> s = {1, 2, 3}
>>> news = s | {4}
>>> s
set([1, 2, 3])
>>> news
set([1, 2, 3, 4])
2 hoặc
>>> s = {1, 2, 3}
>>> news = s | {4}
>>> s
set([1, 2, 3])
>>> news
set([1, 2, 3, 4])
3, họ sửa đổi container tại chỗ.return anything at all (which is equivalent to returning
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
2), neither does
>>> s = {1, 2, 3}
>>> news = s | {4}
>>> s
set([1, 2, 3])
>>> news
set([1, 2, 3, 4])
0. Like
>>> s = {1, 2, 3}
>>> news = s | {4}
>>> s
set([1, 2, 3])
>>> news
set([1, 2, 3, 4])
1 or
>>> s = {1, 2, 3}
>>> news = s | {4}
>>> s
set([1, 2, 3])
>>> news
set([1, 2, 3, 4])
2 or
>>> s = {1, 2, 3}
>>> news = s | {4}
>>> s
set([1, 2, 3])
>>> news
set([1, 2, 3, 4])
3, they modify the container in place.

In [1]: set('abba')
Out[1]: set(['a', 'b'])

In [2]: set('abba').update(set('c'))

In [3]: 

Chỉnh sửa: Trên thực tế, các tài liệu không nói những gì bạn thể hiện trong câu hỏi. Họ nói:

Cập nhật bộ, thêm các yếu tố từ tất cả các yếu tố khác.

Cập nhật bộ, chỉ giữ các yếu tố được tìm thấy trong đó và tất cả các yếu tố khác.

Đã trả lời ngày 16 tháng 12 năm 2012 lúc 21:33Dec 16, 2012 at 21:33

Lev Levitskylev LevitskyLev Levitsky

61.5K20 Huy hiệu vàng142 Huy hiệu bạc170 Huy hiệu đồng20 gold badges142 silver badges170 bronze badges

2

Sự khác biệt giữa cập nhật và thêm vào Python là gì?

Chúng tôi sử dụng phương thức ADD () để thêm giá trị đơn vào một tập. Chúng tôi sử dụng phương thức Update () để thêm các giá trị chuỗi vào một tập hợp.Ở đây các chuỗi là bất kỳ vòng lặp bao gồm danh sách, tuple, chuỗi, dict, v.v. We use update() method to add sequence values to a set. Here Sequences are any iterables including list , tuple , string , dict etc.

Hoạt động cập nhật trong Python là gì?

Bản cập nhật từ điển Python () Phương thức Update () cập nhật từ điển với các phần tử từ một đối tượng từ điển khác hoặc từ một cặp khóa/giá trị.updates the dictionary with the elements from another dictionary object or from an iterable of key/value pairs.

Biểu tượng công đoàn trong Python là gì?

Liên minh được đại diện với một biểu tượng.Python Set Union () là một chức năng tích hợp cung cấp các chức năng tương tự chính xác của hoạt động Liên minh.Chúng ta hãy xem một ví dụ cơ bản để hiểu chính xác hoạt động của công đoàn là gì.A u b = {1, 3, 5, 2, 4, 6} (Liên kết của Set A và Set B)a ∪ symbol. Python set union() is a built-in function that provides the exact similar functionalities of the Union operation. Let us look at a basic example to understand what exactly is Union operation. A U B = {1, 3, 5, 2, 4, 6} (Union of Set A and Set B)

Giao lộ và liên minh ở Python là gì?

Giao lộ: Các phần tử Hai bộ có điểm chung.Union: Tất cả các phần tử từ cả hai bộ.Sự khác biệt: Các yếu tố có mặt trên một bộ, nhưng không phải ở bên kia.Sự khác biệt đối xứng: Các phần tử từ cả hai bộ, không có mặt trên cái khác. Union: All the elements from both sets. Difference: Elements present on one set, but not on the other. Symmetric Difference: Elements from both sets, that are not present on the other.