Hướng dẫn can python dictionary have different data types? - từ điển python có thể có các loại dữ liệu khác nhau không?

Có thể dễ dàng hơn để bỏ qua từ điển trong một khoảnh khắc, và chỉ nghĩ về các bộ. Bạn có thể thấy cách một bộ

mylist = ["John", "Jane", "Emily"]print(mylist[0])
John
print(mylist[1:])
['Jane', 'Emily']
1 có thể bao gồm
mylist = ["John", "Jane", "Emily"]print(mylist[0])
John
print(mylist[1:])
['Jane', 'Emily']
2, phải không? Và nếu bạn đã cố gắng thêm
mylist = ["John", "Jane", "Emily"]print(mylist[0])
John
print(mylist[1:])
['Jane', 'Emily']
3 vào bộ này, nó sẽ không làm gì cả (vì
mylist = ["John", "Jane", "Emily"]print(mylist[0])
John
print(mylist[1:])
['Jane', 'Emily']
3 đã có)?

Bây giờ, giả sử bạn cố gắng thêm

mylist = ["John", "Jane", "Emily"]print(mylist[0])
John
print(mylist[1:])
['Jane', 'Emily']
5 vào
mylist = ["John", "Jane", "Emily"]print(mylist[0])
John
print(mylist[1:])
['Jane', 'Emily']
1.
mylist = ["John", "Jane", "Emily"]print(mylist[0])
John
print(mylist[1:])
['Jane', 'Emily']
5 không phải là
mylist = ["John", "Jane", "Emily"]print(mylist[0])
John
print(mylist[1:])
['Jane', 'Emily']
3 hoặc
mylist = ["John", "Jane", "Emily"]print(mylist[0])
John
print(mylist[1:])
['Jane', 'Emily']
9, vì vậy để xem liệu nó có thể được thêm vào
mylist = ["John", "Jane", "Emily"]print(mylist[0])
John
print(mylist[1:])
['Jane', 'Emily']
1, Python sẽ xem
mylist = ["John", "Jane", "Emily"]print(mylist[0])
John
print(mylist[1:])
['Jane', 'Emily']
5 có bằng
members = {1001: "John", 1002: "Jane", 1003: "Emily"}members[1001]
'John'
members.get(1001)
'John'
2 không. Hiểu bình đẳng đối tượng là một chủ đề toàn bộ, nhưng đủ để nói, có một cách hợp lý để đi về nó. Nếu
members = {1001: "John", 1002: "Jane", 1003: "Emily"}members[1001]
'John'
members.get(1001)
'John'
3 là đúng, thì
mylist = ["John", "Jane", "Emily"]print(mylist[0])
John
print(mylist[1:])
['Jane', 'Emily']
1 sẽ không thay đổi. Nếu không,
mylist = ["John", "Jane", "Emily"]print(mylist[0])
John
print(mylist[1:])
['Jane', 'Emily']
1 sẽ bao gồm
members = {1001: "John", 1002: "Jane", 1003: "Emily"}members[1001]
'John'
members.get(1001)
'John'
6.

Hy vọng, điều này có ý nghĩa với bạn. Nếu nó làm, thì chỉ cần nghĩ về từ điển như bộ đặc biệt. Các khóa của từ điển là các mục của tập hợp và các giá trị của từ điển chỉ giữ một giá trị duy nhất cho mỗi khóa. Nói

members = {1001: "John", 1002: "Jane", 1003: "Emily"}members[1001]
'John'
members.get(1001)
'John'
7 cũng giống như xóa
members = {1001: "John", 1002: "Jane", 1003: "Emily"}members[1001]
'John'
members.get(1001)
'John'
8 khỏi tập hợp, và sau đó thêm lại với
members = {1001: "John", 1002: "Jane", 1003: "Emily"}members[1001]
'John'
members.get(1001)
'John'
9 làm giá trị liên quan của nó. .

Tất nhiên, với các dicts, bạn nên nhớ rằng chỉ các vật thể có thể băm mới được phép trong một dict. Nhưng đó là một chủ đề khác, và không thực sự là mấu chốt của câu hỏi của bạn,

Tăng cường các tập lệnh của bạn bằng cách sử dụng từ điển hiệu quả hơn

Ảnh của Element5 Digital trên Unplash

Cấu trúc dữ liệu là các thành phần chính của các chương trình. Chúng giữ hoặc chứa dữ liệu theo một cách cụ thể để làm cho các chương trình hoạt động hiệu quả hơn. Cách truy cập dữ liệu được lưu trữ trong cấu trúc dữ liệu cũng có tầm quan trọng quan trọng.

Từ điển là một trong những cấu trúc dữ liệu cốt lõi trong Python. Một từ điển chứa các cặp giá trị khóa. Một giá trị có thể dễ dàng được truy cập thông qua khóa của nó. Đây là một ví dụ đơn giản:

members = {1001: "John", 1002: "Jane", 1003: "Emily"}print(members[1001])
John

Trong bài viết này, chúng tôi sẽ vượt qua 4 tính năng phải biết của từ điển Python. Chúng rất cần thiết để sử dụng từ điển một cách hiệu quả và phù hợp.

1. Từ điển không được đặt hàng

Một từ điển chứa các cặp giá trị khóa nhưng không có thứ tự cho các cặp. Do đó, một định nghĩa chính xác hơn là một từ điển là một bộ sưu tập không có thứ tự các cặp giá trị khóa.

Do đó, chúng tôi không thể thực hiện các hoạt động điển hình liên quan đến thứ tự của các mục. Chẳng hạn, không thể có được mục đầu tiên hoặc cuối cùng trong từ điển.

Một hoạt động phổ biến khác được thực hiện với các chỉ số số là cắt. Nó có thể được thực hiện trong danh sách Python:

mylist = ["John", "Jane", "Emily"]print(mylist[0])
John
print(mylist[1:])
['Jane', 'Emily']

Không giống như danh sách, từ điển được lập chỉ mục bởi các khóa. Do đó, không thể thực hiện các hoạt động này trên từ điển do không có đơn đặt hàng. Chúng ta có thể truy cập một giá trị bằng cách chuyển khóa của nó trong dấu ngoặc vuông hoặc phương thức GET.

members = {1001: "John", 1002: "Jane", 1003: "Emily"}members[1001]
'John'
members.get(1001)
'John'

Điều quan trọng cần lưu ý là thiếu một đơn đặt hàng không phải là sự thiếu hụt từ điển Python. Trong thực tế, nó có thể được coi là một thế mạnh. Họ cho phép nhanh chóng truy cập và truy xuất thông tin liên quan đến một khóa cụ thể.

2. Chìa khóa là duy nhất

Khóa từ điển phải là duy nhất. Nó có ý nghĩa bởi vì chúng tôi sử dụng chúng để truy cập các giá trị. Có các khóa trùng lặp đánh bại mục đích sử dụng từ điển để lưu trữ thông tin.

Mặc dù một từ điển không cho phép tạo các khóa trùng lặp, nhưng nó không cảnh báo bạn nếu bạn sử dụng cùng một khóa nhiều lần. Vì vậy, bạn cần phải cẩn thận hơn để không gây ra bất kỳ hành vi bất ngờ nào.

Hãy cùng đi qua một vài ví dụ để làm cho nó rõ ràng hơn.

members = {1001: "John", 1002: "Jane", 1003: "Emily", 1001: "Max"}print(members)
{1001: 'Max', 1002: 'Jane', 1003: 'Emily'}

Chúng tôi sử dụng cùng một khóa (1001) hai lần nhưng không gặp bất kỳ lỗi nào. Thay vào đó, Python ghi đè lên giá trị trước đó với giá trị mới.

Hành vi tương tự được quan sát khi cập nhật từ điển. Chúng tôi có thể thêm một mục mới vào từ điển như dưới đây:

members[1004] = "Ashley"print(members)
{1001: 'Max', 1002: 'Jane', 1003: 'Emily', 1004: 'Ashley'}

Khóa 1004 không có trong từ điển thành viên nên nó được thêm vào với giá trị đã cho. Nếu chúng ta sử dụng cùng một phương thức và truyền một khóa đã có trong từ điển, giá trị của nó sẽ được cập nhật.

members[1001] = "AAAAA"print(members)
{1001: 'AAAAA', 1002: 'Jane', 1003: 'Emily', 1004: 'Ashley'}

Do đó, nó giống như cập nhật giá trị của khóa hơn là tạo một cặp giá trị khóa mới.

3. Chìa khóa phải bất biến

Các phím từ điển phải thuộc loại bất biến. Chuỗi và số là hai loại dữ liệu được sử dụng phổ biến nhất làm khóa từ điển. Chúng ta cũng có thể sử dụng các bộ dữ liệu làm khóa nhưng chúng phải chỉ chứa chuỗi, số nguyên hoặc các bộ dữ liệu khác.

Chúng tôi đã tạo ra một từ điển với các khóa số nguyên. Hãy để tạo ra một vài thứ nữa với các phím chuỗi và tuple.

# string keys
dict_a = {"Param1": "value1", "Param2": "value2"}
print(dict_a)
{'Param1': 'value1', 'Param2': 'value2'}

# tuple keys
dict_b = {(1, 10): "value1", (1,20): "value2"}
print(dict_b)
{(1, 10): 'value1', (1, 20): 'value2'}

Nếu chúng ta cố gắng tạo một khóa của một loại có thể thay đổi (nghĩa là không thể không), một lỗi loại được nêu ra.

dict_c = {[1, 2] : "value1", [1,4]: "value2"}
TypeError: unhashable type: 'list'
dict_d = {(1, [1,2]): "value1"}
TypeError: unhashable type: 'list'

4. Từ điển Hiểu

Có một số phương pháp để tạo ra một từ điển trong Python. Một phương pháp là viết các cặp giá trị khóa trong niềng răng xoăn như chúng ta đã thực hiện cho đến thời điểm này.

Một tùy chọn khác là hàm tạo

members = {1001: "John", 1002: "Jane", 1003: "Emily", 1001: "Max"}print(members)
{1001: 'Max', 1002: 'Jane', 1003: 'Emily'}
1 tạo ra một từ điển từ một chuỗi các cặp giá trị khóa.

sequence = [[1, "John"], [2, "Jane"]]dict(sequence)
{1: 'John', 2: 'Jane'}

Hiểu từ điển tương tự như khái niệm hiểu danh sách. Đó là cách thực tế hơn để tạo ra các từ điển chứa một tập hợp các giá trị có cấu trúc.

Hãy xem xét chúng tôi có văn bản sau.

text = "By 1908, Einstein was recognized as a leading scientist and was appointed lecturer at the University of Bern"

Chúng tôi muốn có được một cái nhìn tổng quan về độ dài của các từ trong văn bản này. Chúng ta có thể tạo một từ điển chứa cả các từ và độ dài của chúng. Từ điển Hiểu hoàn thành nhiệm vụ này chỉ đơn giản như sau:

mylist = ["John", "Jane", "Emily"]print(mylist[0])
John
print(mylist[1:])
['Jane', 'Emily']
0

Chúng tôi chia văn bản tại các ký tự không gian và sử dụng từng từ làm khóa. Các giá trị được tính toán gọi hàm

members = {1001: "John", 1002: "Jane", 1003: "Emily", 1001: "Max"}print(members)
{1001: 'Max', 1002: 'Jane', 1003: 'Emily'}
2 tích hợp trên các từ.

(Hình ảnh của tác giả)

Điều đáng nhấn mạnh là chúng tôi không nhận được bất kỳ thông tin nào về số lần xuất hiện của các từ trong văn bản. Từ điển bao gồm các từ độc đáo.

Sự kết luận

Từ điển là một cấu trúc dữ liệu rất quan trọng trong Python. Đôi khi chúng được gọi là mảng liên kết của người Viking trong các ngôn ngữ lập trình khác. Họ cho phép nhanh chóng lấy thông tin về một mục. Hãy cùng làm một sự tương tự để chứng minh việc sử dụng từ điển.

Hãy xem xét một cuốn sách địa chỉ mà không có bất kỳ cấu trúc tổ chức. Khi một mục mới được thêm vào, nó được viết ở cuối. Để tra cứu một địa chỉ trong cuốn sách này, bạn sẽ bắt đầu đọc từ đầu. Trong bạn không may mắn, bạn có thể phải đọc cho đến cuối cùng để tìm thấy những gì bạn đang tìm kiếm.

Nếu sổ địa chỉ này có một phần riêng cho mỗi chữ cái và địa chỉ được lưu trữ theo các chữ cái ban đầu của chúng, sẽ dễ dàng hơn nhiều để tìm một địa chỉ. Từ điển cung cấp một tra cứu dễ dàng như vậy. Chúng tôi cung cấp cho họ chìa khóa và họ trả về giá trị liên quan.

Cảm ơn bạn đã đọc. Vui lòng cho tôi biết nếu bạn có bất kỳ phản hồi.

Từ điển có thể có nhiều loại dữ liệu?

Người ta chỉ có thể đặt một loại đối tượng vào từ điển.Nếu một người muốn đặt nhiều loại dữ liệu vào cùng một từ điển, ví dụ:Đối với thông tin cấu hình hoặc các cửa hàng dữ liệu phổ biến khác, siêu lớp của tất cả các loại dữ liệu được giữ có thể được sử dụng để xác định từ điển.. If one wants to put a variety of types of data into the same dictionary, e.g. for configuration information or other common data stores, the superclass of all possible held data types must be used to define the dictionary.

Một từ điển Python có thể có các khóa của các loại khác nhau không?

Các giá trị của từ điển có thể thuộc bất kỳ loại nào, nhưng các khóa phải thuộc loại dữ liệu bất biến như chuỗi, số hoặc bộ dữ liệu.the keys must be of an immutable data type such as strings, numbers, or tuples.

Một từ điển có thể có các loại dữ liệu hỗn hợp cho các khóa trong Python không?

Từ điển Python là một thùng chứa của các cặp giá trị khóa.Nó có thể thay đổi và có thể chứa các loại hỗn hợp.Một từ điển là một bộ sưu tập không có thứ tự.can contain mixed types. A dictionary is an unordered collection.