Trong hướng dẫn này, bạn sẽ tìm hiểu về từ điển lồng nhau trong Python – từ điển là giá trị của từ điển khác. Bạn sẽ học cách tạo từ điển lồng nhau, truy cập các thành phần của chúng, sửa đổi chúng và hơn thế nữa. Bạn cũng sẽ học cách làm việc với các từ điển lồng nhau để chuyển đổi chúng thành Khung dữ liệu Pandas
Đến cuối hướng dẫn này, bạn sẽ học được
- Từ điển lồng nhau trong Python là gì
- Cách tạo từ điển lồng nhau trong Python
- Cách truy cập, sửa đổi và xóa các thành phần trong từ điển lồng nhau
- Cách chuyển đổi từ điển lồng nhau sang Pandas DataFrames
Mục lục
Từ điển lồng nhau của Python
Từ điển Python là cấu trúc dữ liệu vùng chứa chứa
# Accessing a Dictionary Value
print[user.get['Name']]. # Same as user['Name']
# Returns: Nik
1 cặp thông tin. Chúng được tạo bằng cách sử dụng dấu ngoặc nhọn # Accessing a Dictionary Value
print[user.get['Name']]. # Same as user['Name']
# Returns: Nik
2, trong đó một giá trị có thể được tra cứu bằng cách truy cập khóa duy nhất của nó. Hãy xem một ví dụ từ điển đơn giản# A Simple Python Dictionary
user = {
'Name': 'Nik',
'Profession':'datagy'
}
Trong từ điển trên, chúng ta có một mục gọi là
# Accessing a Dictionary Value
print[user.get['Name']]. # Same as user['Name']
# Returns: Nik
3. Chúng ta có thể truy cập các giá trị của nó bằng cách tham khảo các khóa của từ điển. Giả sử chúng ta muốn truy cập giá trị của từ điển cho khóa # Accessing a Dictionary Value
print[user.get['Name']]. # Same as user['Name']
# Returns: Nik
4, chúng ta có thể viết# Accessing a Dictionary Value
print[user.get['Name']]. # Same as user['Name']
# Returns: Nik
Một điều thú vị về từ điển Python là chúng ta thậm chí có thể sử dụng các từ điển khác làm giá trị của chúng. Điều này đưa chúng ta đến chủ đề chính của bài viết này
Giả sử chúng tôi muốn có một từ điển chứa thông tin người dùng dựa trên ID người dùng của ai đó. Hãy tạo một từ điển lưu trữ thông tin về nhiều người dùng, được chia nhỏ theo ID
# Understanding Nested Dictionaries
users = {
1: {
'Name': 'Nik',
'Profession':'datagy'
},
2: {
'Name': 'Kate',
'Profession': 'Government'
}
}
Trong ví dụ này, từ điển trước đây của chúng tôi đã được nhúng vào từ điển mới, lớn hơn. Những gì chúng tôi đã làm là tạo một từ điển mới, lồng nhau. Trong phần sau, chúng tôi tìm hiểu cách tạo từ điển lồng nhau
Tạo từ điển lồng nhau trong Python
Trong phần này, bạn sẽ học cách tạo từ điển lồng nhau. Từ điển lồng nhau là từ điển có một từ điển khác là một hoặc nhiều giá trị của chúng. Hãy xem cách chúng ta có thể tạo từ điển lồng nhau trong Python
Hãy xem xét một ví dụ
# Creating a Nested Dictionary in Python
users = {}
Nik = {
'Name': 'Nik',
'Profession':'datagy'
}
Kate = {
'Name': 'Kate',
'Profession': 'Government'
}
users[1] = Nik
users[2] = Kate
print[users]
# Returns: {1: {'Name': 'Nik', 'Profession': 'datagy'}, 2: {'Name': 'Kate', 'Profession': 'Government'}}
Hãy phá vỡ những gì chúng tôi đã làm ở đây
- Chúng tôi đã khởi tạo một từ điển trống,
5# Accessing a Dictionary Value print[user.get['Name']]. # Same as user['Name'] # Returns: Nik
- Chúng tôi đã tạo thêm hai từ điển,
6 và# Accessing a Dictionary Value print[user.get['Name']]. # Same as user['Name'] # Returns: Nik
7# Accessing a Dictionary Value print[user.get['Name']]. # Same as user['Name'] # Returns: Nik
- Sau đó, chúng tôi đã gán các từ điển này làm giá trị của các khóa tương ứng,
8 và# Accessing a Dictionary Value print[user.get['Name']]. # Same as user['Name'] # Returns: Nik
9, trong từ điển# Accessing a Dictionary Value print[user.get['Name']]. # Same as user['Name'] # Returns: Nik
5# Accessing a Dictionary Value print[user.get['Name']]. # Same as user['Name'] # Returns: Nik
Truy cập các mục trong Từ điển lồng nhau bằng Python
Trong phần này, bạn sẽ học cách truy cập các mục trong từ điển Python lồng nhau. Trong phần trước, chúng ta đã khám phá cách sử dụng phương pháp
# Understanding Nested Dictionaries
users = {
1: {
'Name': 'Nik',
'Profession':'datagy'
},
2: {
'Name': 'Kate',
'Profession': 'Government'
}
}
1 để truy cập các mục. Hãy xem điều gì sẽ xảy ra khi chúng ta cố gắng truy cập một mục trong từ điển lồng nhau# Accessing an Item in a Nested Dictionary
users = {
1: {'Name': 'Nik', 'Profession': 'datagy'},
2: {'Name': 'Kate', 'Profession': 'Government'}
}
print[users.get[1]]
# Returns: {'Name': 'Nik', 'Profession': 'datagy'}
Chúng ta có thể thấy rằng điều này đã trả về một từ điển. Vì một từ điển đã được trả lại, chúng tôi có thể truy cập một mục trong từ điển được trả lại
Giả sử chúng tôi muốn truy cập
# Accessing a Dictionary Value
print[user.get['Name']]. # Same as user['Name']
# Returns: Nik
4 của người dùng # Accessing a Dictionary Value
print[user.get['Name']]. # Same as user['Name']
# Returns: Nik
8, chúng tôi có thể viết như sau# Accessing Nested Items in Python Dictionaries
users = {
1: {'Name': 'Nik', 'Profession': 'datagy'},
2: {'Name': 'Kate', 'Profession': 'Government'}
}
print[users.get[1].get['Name']]
# Returns: Nik
Chúng ta có thể gọi phương thức
# Understanding Nested Dictionaries
users = {
1: {
'Name': 'Nik',
'Profession':'datagy'
},
2: {
'Name': 'Kate',
'Profession': 'Government'
}
}
1 nhiều lần vì chúng ta đang truy cập từ điển trong từ điển. Trong phần tiếp theo, bạn sẽ tìm hiểu cách sửa đổi các mục trong từ điển lồng nhauSửa đổi các mục trong Từ điển lồng nhau bằng Python
Trong phần này, bạn sẽ học cách sửa đổi các mục trong từ điển lồng nhau. Để sửa đổi các mục, chúng tôi sử dụng quy trình tương tự như khi đặt một mục mới trong từ điển. Trong trường hợp này, chúng ta chỉ cần điều hướng xuống xa hơn một chút, đến khóa của một từ điển lồng nhau
Giả sử chúng tôi muốn thay đổi nghề nghiệp của người dùng 2 thành
# Understanding Nested Dictionaries
users = {
1: {
'Name': 'Nik',
'Profession':'datagy'
},
2: {
'Name': 'Kate',
'Profession': 'Government'
}
}
5. Sau đó chúng ta có thể viết# Modifying Items in a Nested Dictionary
users = {
1: {'Name': 'Nik', 'Profession': 'datagy'},
2: {'Name': 'Kate', 'Profession': 'Government'}
}
users[2]['Profession'] = 'Habitat for Humanity'
print[users]
# Returns:
# {1: {'Name': 'Nik', 'Profession': 'datagy'}, 2: {'Name': 'Kate', 'Profession': 'Habitat for Humanity'}}
Trong trường hợp này, chúng tôi có thể truy cập giá trị của khóa thông qua chuyển nhượng trực tiếp. Nếu khóa đó không tồn tại trước đó, thì khóa [và giá trị] sẽ được tạo
Xóa các mục trong từ điển lồng nhau bằng Python
Từ điển Python sử dụng từ khóa
# Understanding Nested Dictionaries
users = {
1: {
'Name': 'Nik',
'Profession':'datagy'
},
2: {
'Name': 'Kate',
'Profession': 'Government'
}
}
6 để xóa cặp # Accessing a Dictionary Value
print[user.get['Name']]. # Same as user['Name']
# Returns: Nik
1 trong từ điển. Để làm điều này trong một từ điển lồng nhau, chúng ta chỉ cần đi sâu hơn vào từ điển. Hãy xem cách chúng ta có thể xóa khóa # Understanding Nested Dictionaries
users = {
1: {
'Name': 'Nik',
'Profession':'datagy'
},
2: {
'Name': 'Kate',
'Profession': 'Government'
}
}
8 khỏi từ điển # Accessing a Dictionary Value
print[user.get['Name']]. # Same as user['Name']
# Returns: Nik
8# Deleting an item from a nested dictionary
users = {
1: {'Name': 'Nik', 'Profession': 'datagy'},
2: {'Name': 'Kate', 'Profession': 'Government'}
}
del users[1]['Profession']
print[users]
# Returns:
# {1: {'Name': 'Nik'}, 2: {'Name': 'Kate', 'Profession': 'Government'}}
Tương tự, chúng ta có thể xóa toàn bộ từ điển lồng nhau bằng cùng một phương pháp. Bởi vì từ điển lồng nhau thực sự chỉ là một cặp
# Accessing a Dictionary Value
print[user.get['Name']]. # Same as user['Name']
# Returns: Nik
1 trong từ điển rộng hơn của chúng ta, phương pháp tương tự cũng được áp dụng. Hãy xóa toàn bộ từ điển đầu tiên # Accessing a Dictionary Value
print[user.get['Name']]. # Same as user['Name']
# Returns: Nik
8# Deleting an entire nested dictionary
users = {
1: {'Name': 'Nik', 'Profession': 'datagy'},
2: {'Name': 'Kate', 'Profession': 'Government'}
}
del users[1]
print[users]
# Returns:
# {2: {'Name': 'Kate', 'Profession': 'Government'}}
Trong phần tiếp theo, bạn sẽ tìm hiểu cách lặp qua các từ điển lồng nhau trong Python
Lặp lại thông qua các từ điển lồng nhau trong Python
Trong phần này, bạn sẽ học cách lặp qua các từ điển lồng nhau. Điều này có thể hữu ích khi bạn muốn in ra các giá trị trong từ điển. Chúng ta có thể xây dựng một hàm đệ quy để xử lý việc này. Hãy xem nó trông như thế nào
# Iterating through nested dictionaries recursively
users = {
1: {'Name': 'Nik', 'Profession': 'datagy'},
2: {'Name': 'Kate', 'Profession': 'Government'}
}
def iterate_dict[dict_to_iterate]:
for key, value in dict_to_iterate.items[]:
if type[value] == dict:
print[key]
iterate_dict[value]
else:
print[key + ":" + value]
iterate_dict[users]
# Returns:
# 1
# Name:Nik
# Profession:datagy
# 2
# Name:Kate
# Profession:Government
Chuyển đổi từ điển Python lồng nhau thành Pandas DataFrame
Trong phần cuối cùng này, bạn sẽ tìm hiểu cách chuyển đổi từ điển lồng nhau sang Khung dữ liệu Pandas. Chúng ta có thể chỉ cần chuyển từ điển lồng nhau vào hàm tạo
# Creating a Nested Dictionary in Python
users = {}
Nik = {
'Name': 'Nik',
'Profession':'datagy'
}
Kate = {
'Name': 'Kate',
'Profession': 'Government'
}
users[1] = Nik
users[2] = Kate
print[users]
# Returns: {1: {'Name': 'Nik', 'Profession': 'datagy'}, 2: {'Name': 'Kate', 'Profession': 'Government'}}
2. Tuy nhiên, Pandas sẽ đọc DataFrame bằng các khóa dưới dạng chỉ mụcĐể giải quyết vấn đề này, chúng ta có thể chuyển đổi DataFrame bằng phương pháp
# Creating a Nested Dictionary in Python
users = {}
Nik = {
'Name': 'Nik',
'Profession':'datagy'
}
Kate = {
'Name': 'Kate',
'Profession': 'Government'
}
users[1] = Nik
users[2] = Kate
print[users]
# Returns: {1: {'Name': 'Nik', 'Profession': 'datagy'}, 2: {'Name': 'Kate', 'Profession': 'Government'}}
3# Accessing a Dictionary Value
print[user.get['Name']]. # Same as user['Name']
# Returns: Nik
0Phần kết luận
Trong hướng dẫn này, bạn đã học về từ điển lồng nhau trong Python. Bạn đã biết từ điển lồng nhau là gì. Sau đó, bạn đã học cách truy cập, sửa đổi và xóa các mục của họ. Cuối cùng, bạn đã học cách lặp qua các từ điển lồng nhau cũng như cách đọc chúng trong Pandas DataFrames