Các dấu ngoặc trong python

Dấu ngoặc vuông là danh sách trong khi dấu ngoặc đơn là bộ dữ liệu .

Một danh sách có thể thay đổi, có nghĩa là bạn có thể thay đổi nội dung của nó:

>>> x = [1,2]
>>> x.append(3)
>>> x
[1, 2, 3]

trong khi các bộ dữ liệu thì không:

>>> x = (1,2)
>>> x
(1, 2)
>>> x.append(3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'append'

Sự khác biệt chính khác là một tuple có thể băm, có nghĩa là bạn có thể sử dụng nó như một chìa khóa cho một từ điển, trong số những thứ khác. Ví dụ:

>>> x = (1,2)
>>> y = [1,2]
>>> z = {}
>>> z[x] = 3
>>> z
{(1, 2): 3}
>>> z[y] = 4
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'

Lưu ý rằng, như nhiều người đã chỉ ra, bạn có thể thêm các bộ dữ liệu với nhau. Ví dụ:

>>> x = (1,2)
>>> x += (3,)
>>> x
(1, 2, 3)

Tuy nhiên, điều này không có nghĩa là bộ dữ liệu có thể thay đổi . Trong ví dụ trên, một bộ dữ liệu mới được xây dựng bằng cách thêm hai bộ dữ liệu làm đối số. Bộ dữ liệu gốc không được sửa đổi. Để chứng minh điều này, hãy xem xét những điều sau đây:

>>> x = (1,2)
>>> y = x
>>> x += (3,)
>>> x
(1, 2, 3)
>>> y
(1, 2)

Trong khi đó, nếu bạn xây dựng ví dụ tương tự này với một danh sách, ycũng sẽ được cập nhật:

>>> x = [1, 2]
>>> y = x
>>> x += [3]
>>> x
[1, 2, 3]
>>> y
[1, 2, 3]

226 hữu ích 4 bình luận chia sẻ