Khóa trong từ điển python có thể thay đổi hoặc không thay đổi

Có thể thay đổi trong Python có thể được định nghĩa là đối tượng có thể thay đổi hoặc được coi là một thứ gì đó có thể thay đổi trong tự nhiên. Có thể thay đổi có nghĩa là khả năng sửa đổi hoặc chỉnh sửa một giá trị

Các đối tượng có thể thay đổi trong Python cho phép các lập trình viên có các đối tượng có thể thay đổi giá trị của chúng. Chúng thường được sử dụng để lưu trữ một tập hợp dữ liệu. Nó có thể được coi là một cái gì đó đã biến đổi và trạng thái bên trong áp dụng trong một đối tượng đã thay đổi

Trong hướng dẫn Python này, bạn sẽ học

Đối tượng bất biến là gì?

Các đối tượng bất biến trong Python có thể được định nghĩa là các đối tượng không thay đổi giá trị và thuộc tính của chúng theo thời gian.
Các đối tượng này trở thành vĩnh viễn sau khi được tạo và khởi tạo, đồng thời chúng tạo thành một phần quan trọng của cấu trúc dữ liệu được sử dụng trong Python.

Python được sử dụng trong các số, bộ dữ liệu, chuỗi, bộ cố định và các lớp do người dùng định nghĩa với một số ngoại lệ. Chúng không thể thay đổi và các giá trị của chúng và nó vẫn tồn tại vĩnh viễn sau khi chúng được khởi tạo và do đó được gọi là bất biến

Trong Python, mọi thứ đều là đối tượng

Trong ngôn ngữ lập trình Python, mọi thứ có thể được coi là một đối tượng bao gồm danh sách, số nguyên và hàm. Tính năng này có thể được so sánh với các ngôn ngữ lập trình khác hỗ trợ các đối tượng

Tính năng này có thể được xác minh bằng trình thông dịch Python như hình bên dưới. –

Mã Python

print["The following instance is an object:",isinstance[3,object]]
print["Another instance for object", isinstance[True, object]]
def my_func[]:
    return "guru99"
print["This is a function example and regarded as an object in Python:", isinstance[my_func, object]]

đầu ra

A following instance is an object: True
Another instance for object True
This is a function example and regarded as an object in Python: True

Hơn nữa, Python cung cấp một hàm tích hợp có tên id trả về địa chỉ của đối tượng như hiện có trong bộ nhớ của ngôn ngữ lập trình Python

Mã Python

z=200
id[z]
print["The id of object is", id[z]]

đầu ra

the id of object is 9795360

Trong đoạn mã trên, hàm id có cú pháp id[obj] cung cấp địa chỉ của obj trong bộ nhớ Python. Ở đây, có một đối tượng tên là z và nó có giá trị gán là 200. Đối tượng z sau đó được chuyển vào hàm id dưới dạng id[z] và Python cung cấp địa chỉ của đối tượng là 9795360

Các đối tượng có thể thay đổi trong Python

Trong một đối tượng có thể thay đổi, giá trị của đối tượng thay đổi trong một khoảng thời gian

Trong ví dụ này, chúng tôi đã giải thích các đối tượng có thể thay đổi trong Python và điều này sử dụng các danh sách như một ứng dụng của các đối tượng có thể thay đổi như hình bên dưới. –

Mã Python

mut_list = [1, 2, 3]
  print["The list in Python",mut_list]
mut_list[0] = 'Gurru99'
mut_list
  print["The list in Python after changing value",mut_list]

đầu ra

The list in Python [1, 2, 3]
The list in Python after changing value ['Gurru99', 2, 3]

Như chúng ta có thể thấy trong ví dụ trên, danh sách có thể thay đổi trong Python có các giá trị là 1,2,3. Phần tử đầu tiên của danh sách có thể thay đổi được thay đổi từ 1 thành Guru99 và nó không tạo đối tượng mới khi một giá trị mới được khởi tạo

Ở đây chúng ta có thể sử dụng phương thức id để sử dụng nó. Sau đây minh họa việc sử dụng phương thức id cho các đối tượng có thể thay đổi như hình bên dưới. –

Mã Python

mut_list = [1, 2, 3]
print["The list in Python",mut_list]
print["the id of the list is ",id[mut_list]]
mut_list[0] = 'Gurru99'
mut_list
print["The mut list in Python after changing value",mut_list]
print["the id of the list is post change in value",id[mut_list]]

đầu ra

The list in Python [1, 2, 3]
the id of the list is 139931568729600
The list in Python after changing value ['Gurru99', 2, 3]
the id of the list is post change in value 139931568729600

Hình sau minh họa đối tượng có thể thay đổi trong Python như hình bên dưới. –

Đối tượng bất biến trong Python

Các đối tượng bất biến trong Python là các đối tượng trong đó các phiên bản không thay đổi trong khoảng thời gian. Các phiên bản bất biến của một loại cụ thể, sau khi được tạo, sẽ không thay đổi và điều này có thể được xác minh bằng phương thức id của Python

Hãy để chúng tôi lấy một ví dụ về các đối tượng kiểu số nguyên trong Python minh họa khái niệm về các đối tượng bất biến trong Python như hình dưới đây. –

Mã Python

________số 8

đầu ra

the number before a change is 244
the id of number before change is 9796768
the number before change is 344
the id of number before change is 140032307887024

Có thể thấy ở trên có sự thay đổi trong “a. ” Hãy nghiên cứu cách thức hoạt động của cơ chế

  • Không có thay đổi về giá trị của đối tượng khi khởi tạo “a” với 344
  • Thay vào đó, một đối tượng mới được tạo ra và được bao bọc bởi “a. ”
  • Đối tượng khác được gán là 244 sẽ không thể truy cập được nữa
  • Ví dụ trên đã sử dụng một đối tượng số nguyên

Tại a=244, một đối tượng mới được tạo và tham chiếu đến “a” như hình bên dưới. –

Đăng bằng a=344, có một đối tượng mới được tham chiếu với “a”. Sơ đồ sau đây đại diện cho cùng một. –

Do đó, bất cứ khi nào có sự gán giá trị mới cho tên của kiểu int, thì có sự thay đổi trong liên kết của tên với một đối tượng khác. Nguyên tắc tương tự phù hợp với bộ dữ liệu, chuỗi, float và Boolean do đó được gọi là bất biến

Hàm ý cho các khóa từ điển trong Python

Từ điển có thể được định nghĩa là bộ sưu tập được sắp xếp lưu trữ dữ liệu ở định dạng chính và không cho phép trùng lặp. Từ điển chứa một khóa có cặp giá trị tương ứng được căn chỉnh với nó. Chúng có thể thay đổi về loại và nội dung của chúng có thể được thay đổi ngay cả sau khi khởi tạo và tạo

Tại bất kỳ thời điểm nào, khóa trỏ đến một yếu tố cụ thể tại một thời điểm. Các khóa của từ điển là bất biến

Hãy để chúng tôi lấy một kịch bản giả định như hình dưới đây. –

A following instance is an object: True
Another instance for object True
This is a function example and regarded as an object in Python: True
0

đầu ra. – Đoạn mã Python ở trên không mang lại bất kỳ đầu ra nào và thay vào đó, nó tạo ra lỗi loại không thể xóa. Đây là một tình huống giả định và không được sử dụng trong trình biên dịch Python

Ở đây,

A following instance is an object: True
Another instance for object True
This is a function example and regarded as an object in Python: True
4 được định nghĩa là [4,6] và trong từ điển, nó được định nghĩa là x. Ở đây,
A following instance is an object: True
Another instance for object True
This is a function example and regarded as an object in Python: True
5 được định nghĩa là [5,6,7] và trong từ điển, nó được định nghĩa là y

  • Khóa 'a' có giá trị là [4,6] và nó được khởi tạo thêm thành x
  • Khóa 'b' có giá trị [5,6,7] được khởi tạo thêm thành 'y' trong từ điển
  • Bây giờ, giả sử rằng giá trị của 'a' được nối với 5 và 7, đây là khóa của từ điển
  • Sau đó, từ điển đã được thay đổi và nó sẽ cung cấp cả 'x' và 'y' làm giá trị cho từ điển trên

Xem xét kịch bản sau đây như minh họa ở trên. –

A following instance is an object: True
Another instance for object True
This is a function example and regarded as an object in Python: True
1

Do đó, với tư cách là một ngôn ngữ lập trình, Python làm cho các khóa của từ điển trở nên bất biến và từ điển là các kiểu dữ liệu không thể thay đổi

Ngoại lệ trong tính bất biến

Tuy nhiên, Python cung cấp các ngoại lệ đối với tính bất biến, các ngoại lệ như vậy có thể được quan sát đối với loại đối tượng tuple. Một tuple có thể là sự kết hợp của các loại đối tượng có thể thay đổi và không thể thay đổi. Hãy để chúng tôi lấy một ví dụ để giải thích các ngoại lệ trong tính không thay đổi như hình dưới đây. –

Mã Python

A following instance is an object: True
Another instance for object True
This is a function example and regarded as an object in Python: True
2

đầu ra

A following instance is an object: True
Another instance for object True
This is a function example and regarded as an object in Python: True
3

Bạn có thể thấy trong đoạn mã trên, phần tử đầu tiên, là một danh sách, có thể thay đổi được, trong khi bộ dữ liệu là bất biến. Giá trị của bộ dữ liệu không thể thay đổi, nhưng nội dung của danh sách có trong bộ dữ liệu có thể thay đổi giá trị của nó

Do đó, điều này nảy sinh một ngoại lệ là các đối tượng bất biến không thay đổi giá trị của chúng, nhưng giá trị của các thành phần thay đổi giá trị của chúng

Là một khóa từ điển bất biến Python?

Thứ hai, khóa từ điển phải thuộc loại không thay đổi . Ví dụ: bạn có thể sử dụng số nguyên, số float, chuỗi hoặc Boolean làm khóa từ điển. Tuy nhiên, cả danh sách và từ điển khác đều không thể đóng vai trò là khóa từ điển vì danh sách và từ điển có thể thay đổi.

Tại sao khóa từ điển Python không thay đổi?

Tại sao khóa từ điển phải là bất biến? . Nếu khóa là một đối tượng có thể thay đổi, thì giá trị của nó có thể thay đổi và do đó hàm băm của nó cũng có thể thay đổi. The hash table implementation of dictionaries uses a hash value calculated from the key value to find the key. If the key were a mutable object, its value could change, and thus its hash could also change.

Tại sao các khóa trong từ điển phải là bất biến?

Các giá trị có thể là bất kỳ loại đối tượng nào, nhưng các khóa phải là bất biến. Điều này có nghĩa là khóa có thể là số nguyên, chuỗi hoặc bộ nhưng không phải là danh sách, vì danh sách có thể thay đổi . Bản thân các từ điển có thể thay đổi, vì vậy các mục nhập có thể được thêm, xóa và thay đổi bất kỳ lúc nào.

Các khóa trong từ điển Python là gì?

Định nghĩa và cách sử dụng . Đối tượng xem chứa các khóa của từ điển, dưới dạng danh sách. Đối tượng xem sẽ phản ánh bất kỳ thay đổi nào được thực hiện đối với từ điển, xem ví dụ bên dưới. The keys[] method returns a view object. The view object contains the keys of the dictionary, as a list. The view object will reflect any changes done to the dictionary, see example below.

Chủ Đề