để thay đổi các giá trị cho tên của công nghệ sản xuất đối với 'tên' thành các giá trị trong danh sách Sản xuất if 'type'== 'technosphere'
và cũng thay đổi giá trị 'số lượng' thành các giá trị trong danh sách Số lượng_Khu vực tương ứng cho Khu vực 1 và Khu vực 2
[số tiền ở Vùng 1 cho Công nghệ 1 = x1 , ở Vùng 2 cho Công nghệ 1 = y1 , v.v. như thế này]
Cố gắng của tôi là như dưới đây
for r in Regions:
for i in range [len[created_dataset[0]["r"]['exchanges']]:
if created_dataset[0]["r"]['exchanges'][i]['type'] == 'technosphere':
for a in range [len [Productions]:
created_dataset[0]["r"]['exchanges'][i]['name'] = Productions[a]
for x in range [len[ Amounts_Region1]: # and same loop as for Region 2
created_dataset[0]["Region 1"]['exchanges'][i]['amount'] = Amounts_Region1[x]
Thật không may, điều này sẽ không dẫn đến những gì tôi mong đợi vì phạm vi của các chỉ mục danh sách không bằng nhau và chỉ khi chúng có cùng số phần tử, chúng mới chạy
Tôi sẽ đánh giá cao bất kỳ sự giúp đỡ và gợi ý nào để giải quyết vấn đề này
@RetoSchoelly, @rob42,
Cảm ơn bạn rất nhiều vì sự sửa chữa của bạn. vấn đề thực tế xuất phát từ cơ sở dữ liệu ban đầu của tôi có 13 khóa bên ngoài, được gọi là 13 vùng và đối với “trao đổi” khóa bên trong, cũng có 13 phần tử trong danh sách với cấu trúc mẫu này
{ 'amount': 0.378,
'type': 'technosphere',
'product': 'low-alloyed',
'name': 'EAF',
'unit': 'kilogram',
'location': 'Region 1',
'database': 'ecoinvent'}
tuy nhiên, danh sách sửa đổi giá trị mới của tôi có 8 phần tử và vòng lặp dường như không hoạt động do không tương thích phạm vi chỉ mục. để giải quyết vấn đề tôi đã nghĩ đến việc làm trống giá trị cho "trao đổi" như vậy
Chúng tôi đã xem qua danh sách python và bộ python. Bây giờ, chúng ta sẽ đi qua từ điển python và từ điển lồng nhau. Chúng ta sẽ xem từ điển là gì, cách tạo nó?, cách thêm mục vào từ điển, cách xóa hoặc sửa đổi trong từ điển, v.v.
Bắt đầu
Từ điển trong Python là các bộ sưu tập có thể thay đổi và không có thứ tự. Chúng đến từ cấu trúc dữ liệu tích hợp và chứa các phần tử ở dạng khóa. cặp giá trị liên kết khóa với giá trị
Từ điển trong Python là vùng chứa chứa các cặp khóa và giá trị tương ứng của chúng. Các khóa phải là bất biến và duy nhất trong từ điển Python không giống như các giá trị có thể thay đổi và có thể xuất hiện nhiều lần với các khóa khác nhau
Trong các ngôn ngữ khác, từ điển trong Python được gọi là mảng kết hợp hoặc bảng băm
Tạo từ điển bằng Python
Trong ngôn ngữ Python, Từ điển là các thùng chứa phức tạp có thể được tạo thông qua nhiều cách. Nó có thể được tạo bằng cách sử dụng
Sử dụng Dấu ngoặc nhọn i. e. { }
Trong Python, chúng tôi sử dụng dấu ngoặc nhọn {} để tạo từ điển. Nó đánh dấu sự bắt đầu và kết thúc của từ điển. Tất cả các cặp khóa và giá trị được bao gồm trong dấu ngoặc nhọn. Các khóa được phân tách khỏi các giá trị tương ứng của chúng bằng dấu hai chấm. và mỗi khóa cặp. giá trị được phân tách với giá trị khác bằng dấu phẩy,
day = { "key_1" : "value_1", "key_2" : "value_2"}
Đây,
chúng tôi đã xác định một từ điển bằng cách sử dụng dấu ngoặc nhọn có hai cặp khóa và giá trị – key_1. giá trị_1 và khóa_2. giá trị_2Hiểu từ điển trong Python
Khả năng hiểu từ điển cũng được sử dụng để tạo từ điển trong Python
Một cách hiểu từ điển có dạng
{key: value for [key, value] in iterable}
Ở đây, chúng tôi đang cố gắng tạo từ điển từ iterable bằng cách sử dụng các cặp khóa. các giá trị hiện diện trong đó
Ví dụ,
day = [ "monday" , "tuesday" , "wednesday", "thursday", "friday"] my_dict = { key : value for key, value in enumerate[day] } print [my_dict]
đầu ra
{0: 'monday', 1: 'tuesday', 2: 'wednesday', 3: 'thursday', 4: 'friday'}
my_dict chứa các cặp khóa. giá trị từ danh sách ngày bằng cách sử dụng chức năng liệt kê. Các phím là vị trí mà tại đó các giá trị tương ứng có mặt trong ngày danh sách
Sử dụng Trình xây dựng dict[]
dict[] là hàm tạo cũng có thể được sử dụng để tạo từ điển. Nó có thể được sử dụng như dưới đây -
dict_name = dict[key_1=value_1, ...]
Như đã trình bày ở trên, dict[] được sử dụng để xây dựng từ điển trực tiếp từ chuỗi các cặp khóa-giá trị trong Python
Hãy xem nó hoạt động như thế nào
moment = dict[year=2022, month="April", day="wednesday", hour="16h pm"] print[moment]
đầu ra
________số 8_______Đây,
khoảnh khắc là một từ điển được tạo bằng cách sử dụng hàm tạo dict[] có các cặp khóa. giá trị -- 'năm'. 2022
- 'tháng'. 'Tháng tư'
- 'ngày'. 'Thứ Tư'
- 'giờ'. ’16h chiều’
Tạo từ điển rỗng trong Python
Ghi chú. Chúng ta có thể sử dụng hàm bên trong python – dict[] để tạo một từ điển trống trong Python
Ví dụ,
y = dict[]
Ở đây, y là một từ điển trống được tạo bằng hàm dict[]
Bây giờ chúng ta sẽ trình bày một ví dụ khác về việc sử dụng hàm tạo dict[]
Sử dụng zip[] với dict[] Constructor để tạo từ điển
hàm zip[] trả về một đối tượng zip trong đó các trình vòng lặp đã qua được sử dụng để tạo bộ dữ liệu bằng cách nhóm các trình vòng lặp thứ nhất và thứ hai
Chúng ta có thể sử dụng đối tượng zip được trả về để tạo các bộ dữ liệu như bên dưới –
moment = dict[zip[["year", "month", "day", "hour"], [2022, "April", "wednesday", "16h pm"]]] print[moment]
đầu ra
________số 8_______Như đã giải thích ở trên, zip[] là hàm Python lấy đối số làm hai đối tượng có thể lặp lại và liên kết từng mục trong lần lặp đầu tiên với mục tương ứng của nó trong lần lặp thứ hai. Nếu hai đối tượng có thể lặp lại có độ dài khác nhau, độ dài của đối tượng có thể lặp lại ngắn hơn sẽ quyết định độ dài của đối tượng được trả về
Tạo từ điển bằng list và dict[] Constructor
Hàm tạo dict[] cũng có thể được sử dụng với danh sách để tạo từ điển như hình bên dưới –
{key: value for [key, value] in iterable}
0đầu ra
________số 8_______
Nhận độ dài của từ điển trong Python
Chúng ta có thể lấy độ dài của từ điển trong python bằng hàm nội bộ len[]
{key: value for [key, value] in iterable}2
đầu ra
{key: value for [key, value] in iterable}3
Ghi chú. len[] trả về số lượng khóa có trong từ điển. Như vậy, số lượng khóa liên quan đến độ dài từ điển
Nhận loại từ điển trong Python
Chúng tôi có kích thước của từ điển trong python bằng hàm len[]. Bây giờ, chúng ta sẽ nhận được loại từ điển đã tạo. Để làm điều đó, chúng ta sẽ sử dụng hàm bên trong Python – type[]
Ghi chú. type[] là một hàm giúp chúng ta lấy kiểu của bất kỳ đối tượng nào được tạo trong Python. Nó chấp nhận từ điển làm đối số và trả về loại từ điển
Ví dụ,
{key: value for [key, value] in iterable}4
đầu ra
{key: value for [key, value] in iterable}5
Truy cập các mục từ điển bằng Python
Các mục Từ điển trong Python có thể được truy cập theo hai cách –
Truy cập tất cả các mục cùng một lúc
Trong Python, một cách đơn giản hơn để truy cập toàn bộ từ điển là hiển thị nó bằng cách sử dụng tên của nó
Ví dụ,
{key: value for [key, value] in iterable}
6đầu ra
{key: value for [key, value] in iterable}
7Tại đây, tất cả các mục đã được hiển thị theo tên của từ điển
Giá trị truy cập của bất kỳ mục nào
Theo một cách khác, chúng ta có thể truy cập một giá trị cụ thể của từ điển bằng cách cung cấp khóa của nó trong dấu ngoặc vuông trong dấu ngoặc kép
{key: value for [key, value] in iterable}
8đầu ra
{key: value for [key, value] in iterable}
9Ghi chú. Nếu khóa trong dấu ngoặc vuông không có trong từ điển thì sẽ hiển thị lỗi
Nhận khóa Từ điển bằng Python
Tất cả các khóa có trong Từ điển đã tạo có thể được truy cập bằng phương thức keys[]. Phương thức này trả về một đối tượng chứa danh sách các khóa có trong từ điển
day = [ "monday" , "tuesday" , "wednesday", "thursday", "friday"] my_dict = { key : value for key, value in enumerate[day] } print [my_dict]0
đầu ra
day = [ "monday" , "tuesday" , "wednesday", "thursday", "friday"] my_dict = { key : value for key, value in enumerate[day] } print [my_dict]1
Ghi chú. Kết quả của đầu ra này có thể được chuyển đổi trong một đối tượng danh sách bằng cách sử dụng hàm nội bộ Python list[]
day = [ "monday" , "tuesday" , "wednesday", "thursday", "friday"] my_dict = { key : value for key, value in enumerate[day] } print [my_dict]2
đầu ra
day = [ "monday" , "tuesday" , "wednesday", "thursday", "friday"] my_dict = { key : value for key, value in enumerate[day] } print [my_dict]3
Nhận các giá trị của từ điển trong Python
Khi chúng ta muốn lấy tất cả các giá trị có trong Từ điển đã tạo, chúng ta sử dụng phương thức values[] trả về một đối tượng chứa danh sách các giá trị có trong Từ điển
day = [ "monday" , "tuesday" , "wednesday", "thursday", "friday"] my_dict = { key : value for key, value in enumerate[day] } print [my_dict]4
đầu ra
day = [ "monday" , "tuesday" , "wednesday", "thursday", "friday"] my_dict = { key : value for key, value in enumerate[day] } print [my_dict]5
Như chúng tôi đã nói ở trên, chúng tôi có thể chuyển đổi đầu ra này trong một đối tượng danh sách bằng cách sử dụng hàm list[]
day = [ "monday" , "tuesday" , "wednesday", "thursday", "friday"] my_dict = { key : value for key, value in enumerate[day] } print [my_dict]6
đầu ra
day = [ "monday" , "tuesday" , "wednesday", "thursday", "friday"] my_dict = { key : value for key, value in enumerate[day] } print [my_dict]7
Nhận tất cả các mục từ điển
Giống như các khóa và giá trị, chúng tôi cũng có thể nhận được tất cả các mục có trong Từ điển. Các mục của từ điển có thể được truy cập –
Sử dụng phương thức items[]
Để truy cập các mục, chúng ta sẽ sử dụng phương thức từ điển có tên là items[]. Ví dụ,
day = [ "monday" , "tuesday" , "wednesday", "thursday", "friday"] my_dict = { key : value for key, value in enumerate[day] } print [my_dict]
8đầu ra
day = [ "monday" , "tuesday" , "wednesday", "thursday", "friday"] my_dict = { key : value for key, value in enumerate[day] } print [my_dict]
9Ghi chú. items[] trả về một đối tượng chứa danh sách các cặp tuple [key. giá trị]. Vì vậy, hãy chuyển đổi đầu ra này thành đối tượng danh sách
{0: 'monday', 1: 'tuesday', 2: 'wednesday', 3: 'thursday', 4: 'friday'}
0đầu ra
{0: 'monday', 1: 'tuesday', 2: 'wednesday', 3: 'thursday', 4: 'friday'}
1Sử dụng vòng lặp
Một cách khác để truy cập tất cả các mục có trong từ điển là tạo một vòng lặp qua từ điển như ví dụ bên dưới
{0: 'monday', 1: 'tuesday', 2: 'wednesday', 3: 'thursday', 4: 'friday'}
2đầu ra
{0: 'monday', 1: 'tuesday', 2: 'wednesday', 3: 'thursday', 4: 'friday'}
3
Kiểm tra xem có khóa nào tồn tại hay không
Ở đây, mục đích của chúng tôi là xác minh xem có khóa nào có trong từ điển python hay không. Để đạt được mục tiêu này, chúng ta sẽ sử dụng toán tử in và not in. Kết quả là một giá trị boolean tôi. e. Đúng hay sai. Chúng tôi sẽ nhận được True nếu điều kiện được xác minh. Nếu không, đó là Sai
Sử dụng trong Toán tử
trong toán tử trả về True nếu khóa đã cho có trong từ điển, nếu không, nó trả về Sai. Ví dụ,
{0: 'monday', 1: 'tuesday', 2: 'wednesday', 3: 'thursday', 4: 'friday'}
4đầu ra
{0: 'monday', 1: 'tuesday', 2: 'wednesday', 3: 'thursday', 4: 'friday'}
5Ở đây, chúng tôi đã kiểm tra xem khóa thứ hai có trong từ điển nhất định – ngày hay không. Vì nó hiện diện trong từ điển, nên trả về True. Do đó, đầu ra là True
Sử dụng không trong Toán tử
không có trong toán tử trả về True nếu khóa đã cho không có trong từ điển, ngược lại nó trả về Sai. Ví dụ,
{0: 'monday', 1: 'tuesday', 2: 'wednesday', 3: 'thursday', 4: 'friday'}
6đầu ra
{0: 'monday', 1: 'tuesday', 2: 'wednesday', 3: 'thursday', 4: 'friday'}
7khóa thứ hai có mặt trong từ điển – ngày. Vì vậy, not in toán tử trả về Sai. Do đó, đầu ra là Sai
Hãy lấy một ví dụ khác,
{0: 'monday', 1: 'tuesday', 2: 'wednesday', 3: 'thursday', 4: 'friday'}
8đầu ra
{0: 'monday', 1: 'tuesday', 2: 'wednesday', 3: 'thursday', 4: 'friday'}
9từ thứ bảy không có trong từ điển. Vì vậy, not in toán tử trả về True. Do đó, đầu ra là True
Hãy kiểm tra một ví dụ khác,
dict_name = dict[key_1=value_1, ...]
0đầu ra
dict_name = dict[key_1=value_1, ...]
1Một lần nữa, thứ ba có mặt trong từ điển. Vì vậy, đầu ra là Sai
Cho đến bây giờ, chúng tôi đã kiểm tra xem khóa của từ điển có trong từ điển python hay không
Chúng tôi cũng có thể kiểm tra xem có bất kỳ giá trị nào có trong Từ điển hay không. Hãy kiểm tra nó với một số mã python
Kiểm tra xem có giá trị nào tồn tại hay không
Chúng ta có thể sử dụng phương thức values[] và toán tử in để kiểm tra xem có giá trị nào tồn tại trong từ điển hay không
dict_name = dict[key_1=value_1, ...]2
đầu ra
dict_name = dict[key_1=value_1, ...]1
Đây,
- values[] trả về tất cả các giá trị có trong từ điển
- Sau đó, chúng tôi đã áp dụng toán tử trên các giá trị được trả về để kiểm tra xem giá trị đã cho có trong danh sách hay không
- Vì 0 không có trong các giá trị. Do đó, đầu ra là Sai
Hãy lấy một ví dụ khác,
dict_name = dict[key_1=value_1, ...]4
đầu ra
dict_name = dict[key_1=value_1, ...]5
Đây,
Chúng tôi đã kiểm tra xem 2 có trong các giá trị của từ điển hay không. Vì nó hiện diện. Đầu ra là Đúng
Thêm mục vào từ điển
Để thêm phần tử mới [phím. value] vào từ điển, chúng tôi sử dụng cú pháp bên dưới
dict_name = dict[key_1=value_1, ...]6
Ví dụ,
dict_name = dict[key_1=value_1, ...]7
đầu ra
dict_name = dict[key_1=value_1, ...]8
Cập nhật mục trong từ điển
Trong từ điển Python, chúng tôi cập nhật giá trị của mục hiện có [khóa. value] bằng cách sử dụng cú pháp sau –
dict_name = dict[key_1=value_1, ...]9
Ví dụ,
moment = dict[year=2022, month="April", day="wednesday", hour="16h pm"] print[moment]0
đầu ra
moment = dict[year=2022, month="April", day="wednesday", hour="16h pm"] print[moment]1
Đây,
Chúng tôi đã cập nhật giá trị của khóa thứ hai thành 0 từ 1
Ghi chú. Cú pháp được sử dụng để thêm và cập nhật mục trong từ điển gần như giống nhau nhưng để thêm mục, khóa phải là khóa mới và để cập nhật mục, phải là khóa hiện có và giá trị phải là giá trị mới
Cập nhật từ điển
Chúng tôi cũng có thể cập nhật từ điển bằng Python. Để làm điều đó, chúng ta sẽ thêm một từ điển vào một từ điển khác bằng cách sử dụng phương thức từ điển có tên là update[]
Ví dụ,
moment = dict[year=2022, month="April", day="wednesday", hour="16h pm"] print[moment]2
đầu ra
moment = dict[year=2022, month="April", day="wednesday", hour="16h pm"] print[moment]3
Xóa mục trong từ điển
Sau khi tạo Từ điển, chúng tôi có lựa chọn xóa bất kỳ mục nào trong đó. Để loại bỏ mục trong từ điển, chúng tôi sử dụng các phương pháp khác nhau hoặc từ khóa. Họ đang -
Sử dụng phương thức pop[]
phương thức pop[] xóa khóa đã chỉ định và trả về giá trị tương ứng của nó. Ví dụ,
moment = dict[year=2022, month="April", day="wednesday", hour="16h pm"] print[moment]
4đầu ra
moment = dict[year=2022, month="April", day="wednesday", hour="16h pm"] print[moment]
5Đây,
thứ tư đã bị xóa bằng phương thức pop[] từ ngày từ điểnSử dụng phương thức popitem[]
popitem[] không nhận đối số và xóa mục cuối cùng trong Từ điển và trả về mục đó. Tăng keyError khi từ điển trống. Ví dụ,
moment = dict[year=2022, month="April", day="wednesday", hour="16h pm"] print[moment]
6đầu ra
moment = dict[year=2022, month="April", day="wednesday", hour="16h pm"] print[moment]
7Đây,
Mục cuối cùng trong từ điển là thứ sáu. Vì vậy, nó đã bị xóa khỏi từ điển bằng phương thức popitem[]Sử dụng từ khóa del
từ khóa del loại bỏ hoàn toàn từ điển hoặc một khóa cụ thể của từ điển và giá trị của nó. Nó làm tăng lỗi khóa nếu khóa không có trong Từ điển. Ví dụ,
Xóa từ điển bằng cách sử dụng từ khóa deldel xóa từ điển với tên đã cho. Ví dụ,
moment = dict[year=2022, month="April", day="wednesday", hour="16h pm"] print[moment]
8đầu ra
moment = dict[year=2022, month="April", day="wednesday", hour="16h pm"] print[moment]
9Vì chức năng print[] đang cố in từ điển sau khi nó đã bị xóa, nên nó báo lỗi
Xóa khóa cụ thể của từ điển bằng DelKhóa cụ thể của từ điển có thể bị xóa bằng từ khóa del. Ví dụ,
{'year': 2022, 'month': 'April', 'day': 'wednesday', 'hour': '16h pm'}
0đầu ra
{'year': 2022, 'month': 'April', 'day': 'wednesday', 'hour': '16h pm'}
1Sử dụng phương thức rõ ràng []
phương thức clear[] xóa tất cả các mục của từ điển i. e. từ điển trở nên trống rỗng. Ví dụ,
{'year': 2022, 'month': 'April', 'day': 'wednesday', 'hour': '16h pm'}
2đầu ra
{'year': 2022, 'month': 'April', 'day': 'wednesday', 'hour': '16h pm'}
3Ghi chú. phương thức clear[] loại bỏ tất cả các mục trong từ điển và từ điển vẫn còn trong bộ nhớ
Lặp qua từ điển
Trong phần này, chúng ta sẽ xem làm thế nào chúng ta có thể lặp qua từ điển bằng cách thực hiện
Lặp qua các phím
Sử dụng vòng lặp for, mỗi khóa của từ điển có thể được truy cập như hình bên dưới –
{'year': 2022, 'month': 'April', 'day': 'wednesday', 'hour': '16h pm'}
4đầu ra
{'year': 2022, 'month': 'April', 'day': 'wednesday', 'hour': '16h pm'}
5Các khóa của từ điển cũng có thể được truy cập bằng cách sử dụng phương thức keys[] của từ điển. Ví dụ,
{'year': 2022, 'month': 'April', 'day': 'wednesday', 'hour': '16h pm'}
6đầu ra
{'year': 2022, 'month': 'April', 'day': 'wednesday', 'hour': '16h pm'}
5keys[] phương thức trả về tất cả các khóa của từ điển. Sau đó, sử dụng vòng lặp for, mỗi khóa được truy cập
Lặp lại thông qua các giá trị
{'year': 2022, 'month': 'April', 'day': 'wednesday', 'hour': '16h pm'}
8đầu ra
{'year': 2022, 'month': 'April', 'day': 'wednesday', 'hour': '16h pm'}
9Lặp lại thông qua các mục
items[] trả về tất cả các mục có trong từ điển. Sau đó, sử dụng vòng lặp for, mỗi mục có thể được truy cập và in
Ví dụ,y = dict[]
0đầu ra
y = dict[]
1
Sao chép từ điển này sang từ điển khác
Để sao chép tất cả các mục có trong từ điển này sang từ điển khác, chúng ta sẽ sử dụng phương thức copy[] của Dictionaries. Ví dụ,
y = dict[]2
đầu ra
y = dict[]3
Các phương pháp khác nhau của từ điển
MethodsDescriptionspop[]- Xóa khóa đã chỉ định và trả về giá trị tương ứng
- Nếu không tìm thấy khóa, trả về mặc định nếu được cung cấp nếu không sẽ tăng keyError
- Lấy làm khóa đối số và giá trị mặc định của nó
- Chèn khóa có giá trị mặc định nếu khóa không có trong từ điển
- Trả về giá trị cho khóa nếu khóa có trong từ điển, nếu không thì mặc định
- Xóa và trả về một cặp [khóa, giá trị] dưới dạng 2 bộ
- Các cặp được trả về theo thứ tự LIFO [vào sau, ra trước]
- Tăng KeyError nếu từ điển trống
- Xóa tất cả các mục khỏi từ điển và trả về Không có
- Nhưng đối tượng từ điển vẫn còn trong bộ nhớ
- Lấy khóa và giá trị mặc định của nó làm đối số
- Trả về giá trị cho khóa nếu khóa có trong từ điển, nếu không thì mặc định
- Trả về một đối tượng cung cấp chế độ xem trên các giá trị của từ điển
- Nói một cách rõ ràng, phương thức này trả về một đối tượng chứa danh sách các giá trị có trong từ điển
- Nói một cách đơn giản hơn, phương thức values[] trả về tất cả các giá trị trong từ điển dưới dạng chuỗi [ở dạng danh sách]
- Trả về một đối tượng cung cấp chế độ xem trên các khóa của từ điển
- Nói cách khác, phương thức này trả về một đối tượng chứa danh sách các khóa có trong từ điển
- Nói một cách đơn giản hơn, phương thức keys[] trả về tất cả các khóa trong từ điển dưới dạng chuỗi [dưới dạng danh sách]
- Trả về một đối tượng cung cấp chế độ xem trên các mục của từ điển
- Trả về tất cả các mục trong từ điển dưới dạng một chuỗi [ở dạng danh sách chứa một bộ [khóa, giá trị]]
- Phương pháp này sao chép tất cả các mục có trong từ điển sang từ điển khác
- Phương thức này lấy một từ điển làm đối số và thêm các mục của nó vào cuối một từ điển khác
Các chức năng khác làm việc với Từ điển
FunctionDescriptionsorted[]Trả về danh sách chứa các khóa có trong từ điển. len[] Trả về độ dài của từ điển hoặc số mục trong từ điển. max[] Trả về chuỗi lớn nhất nếu key là chuỗi. Nó trả về tối đa các khóa nếu các khóa là bộ số nguyên. min[] Trả về chuỗi nhỏ nhất nếu key là chuỗi. Nó trả về số khóa tối thiểu nếu các khóa là bộ số nguyên. all[] Hàm này trả về True nếu tất cả các khóa trong từ điển là đúng hoặc nếu từ điển trống. any[] Điều này trả về True nếu bất kỳ khóa nào của từ điển là true. Nó trả về Sai nếu từ điển rỗngcmp[] Lấy hai từ điển làm đối số và so sánh các khóa của từng từ điểnTừ điển lồng nhau trong Python
Trước đây chúng ta đã tìm hiểu về Từ điển trong Python. Bây giờ, chúng ta sẽ thảo luận về Nested Dictionary trong Python
Từ điển lồng nhau trong Python là gì?
Nói một cách đơn giản hơn, Nested Dictionary là một từ điển chứa các Dictionaries khác
Vì vậy, giống như Từ điển, Từ điển lồng nhau là các bộ sưu tập có thể thay đổi và không có thứ tự chứa các khóa và giá trị tương ứng của chúng
Tạo từ điển lồng nhau
Như chúng tôi đã nói ở trên, để tạo Từ điển hoặc Từ điển lồng nhau trong Python, chúng ta có thể sử dụng hàm tạo dấu ngoặc nhọn hoặc dict[] hoặc khả năng hiểu từ điển. Nhưng ở đây để đi nhanh chúng ta sẽ dùng cách thứ nhất. khung xoăn
y = dict[]4
đầu ra
y = dict[]5
Đây,
Chúng tôi đã tạo một cuốn sách từ điển lồng nhau bằng cách sử dụng dấu ngoặc nhọn. Tương tự, bạn có thể sử dụng các cách tạo từ điển khác cho từ điển lồng nhau
Nhận độ dài của từ điển lồng nhau
Để lấy độ dài của từ điển lồng nhau, chúng ta sẽ sử dụng hàm bên trong Python – len[]. Phương thức này sẽ trả về số mục hoặc số khóa có trong từ điển lồng nhau
Ví dụ,
y = dict[]6
đầu ra
y = dict[]7
Ở đây, tổng số khóa có trong từ điển sách là 2. Do đó, len[] trả về 2
Nhận loại từ điển lồng nhau trong Python
Hàm bên trong Python được gọi là type[] sẽ giúp chúng ta biết loại đối tượng từ điển lồng nhau. Ví dụ,
y = dict[]8
đầu ra
y = dict[]9
Nhận các mục từ điển lồng nhau trong Python
Ở đây, cách duy nhất để có được mục trong Từ điển lồng nhau như chúng ta muốn là tạo một phép lặp thông qua từ điển lồng nhau. Ví dụ,
moment = dict[zip[["year", "month", "day", "hour"], [2022, "April", "wednesday", "16h pm"]]] print[moment]0
đầu ra
moment = dict[zip[["year", "month", "day", "hour"], [2022, "April", "wednesday", "16h pm"]]] print[moment]1
Chúng tôi có các mục hiện diện trong từ điển lồng nhau bằng cách sử dụng vòng lặp for
Nhận khóa của từ điển lồng nhau trong Python
Có thể tìm thấy các khóa của từ điển lồng nhau –
Sử dụng Phương pháp Vòng lặp
Sử dụng vòng lặp for, chúng ta có thể truy cập các khóa của từ điển lồng nhau trong python. Sau đó, chúng tôi in nó bằng phương thức print[]. Ví dụ,
moment = dict[zip[["year", "month", "day", "hour"], [2022, "April", "wednesday", "16h pm"]]] print[moment]
2đầu ra
moment = dict[zip[["year", "month", "day", "hour"], [2022, "April", "wednesday", "16h pm"]]] print[moment]
3Sử dụng phương thức keys[]
Sử dụng phương thức keys[], chúng ta lấy được tất cả các key của từ điển lồng nhau trong python. Sau đó, chúng tôi in các giá trị trả về của nó. Ví dụ,
moment = dict[zip[["year", "month", "day", "hour"], [2022, "April", "wednesday", "16h pm"]]] print[moment]
4đầu ra
moment = dict[zip[["year", "month", "day", "hour"], [2022, "April", "wednesday", "16h pm"]]] print[moment]
5Bây giờ chúng tôi sẽ chuyển đổi đầu ra này thành đối tượng danh sách
moment = dict[zip[["year", "month", "day", "hour"], [2022, "April", "wednesday", "16h pm"]]] print[moment]
6đầu ra
moment = dict[zip[["year", "month", "day", "hour"], [2022, "April", "wednesday", "16h pm"]]] print[moment]
7
Nhận các giá trị của từ điển lồng nhau trong Python
Để lấy giá trị của tất cả các khóa có trong từ điển lồng nhau trong python, chúng tôi sử dụng phương thức value[] của từ điển
moment = dict[zip[["year", "month", "day", "hour"], [2022, "April", "wednesday", "16h pm"]]] print[moment]8
đầu ra
moment = dict[zip[["year", "month", "day", "hour"], [2022, "April", "wednesday", "16h pm"]]] print[moment]9
Bây giờ, chúng ta có thể chuyển đổi đầu ra này thành đối tượng danh sách
{'year': 2022, 'month': 'April', 'day': 'wednesday', 'hour': '16h pm'}0
đầu ra
{'year': 2022, 'month': 'April', 'day': 'wednesday', 'hour': '16h pm'}1
Nhận các mục từ điển lồng nhau trong Python
Để lấy tất cả các mục chứa trong từ điển lồng nhau, chúng tôi sử dụng phương thức từ điển có tên là items[]. Ví dụ,
{'year': 2022, 'month': 'April', 'day': 'wednesday', 'hour': '16h pm'}2
đầu ra
{'year': 2022, 'month': 'April', 'day': 'wednesday', 'hour': '16h pm'}3
Hãy chuyển đổi đầu ra này thành một đối tượng danh sách
{'year': 2022, 'month': 'April', 'day': 'wednesday', 'hour': '16h pm'}4
đầu ra
{'year': 2022, 'month': 'April', 'day': 'wednesday', 'hour': '16h pm'}5
Kiểm tra xem có Key tồn tại hay không
Để kiểm tra xem có key nào trong từ điển lồng nhau của python hay không, chúng ta có thể sử dụng in và not in toán tử. Chúng sẽ giúp chúng tôi xác minh xem khóa có tồn tại hay không trong từ điển lồng nhau. Họ trả về True nếu điều kiện được xác minh và Sai nếu không
Sử dụng trong Toán tử trong Từ điển lồng nhau
Nó tương tự như từ điển đơn giản trong python. Ví dụ,
{'year': 2022, 'month': 'April', 'day': 'wednesday', 'hour': '16h pm'}
6đầu ra
dict_name = dict[key_1=value_1, ...]
5Hãy lấy một ví dụ khác,
{'year': 2022, 'month': 'April', 'day': 'wednesday', 'hour': '16h pm'}
8đầu ra
dict_name = dict[key_1=value_1, ...]
1Sử dụng không trong Toán tử trong Từ điển lồng nhau
Nó tương tự như không có toán tử trong từ điển đơn giản. Ví dụ,
{key: value for [key, value] in iterable}
00đầu ra
dict_name = dict[key_1=value_1, ...]
1Hãy lấy một ví dụ khác,
{key: value for [key, value] in iterable}
02đầu ra
{0: 'monday', 1: 'tuesday', 2: 'wednesday', 3: 'thursday', 4: 'friday'}
9
Thêm mục vào từ điển lồng nhau trong Python
Tại đây, chúng ta có thể thêm mục trong Từ điển lồng nhau bằng cách sử dụng dấu ngoặc vuông [ ] hoặc cú pháp chỉ mục. Ví dụ,
{key: value for [key, value] in iterable}04
đầu ra
{key: value for [key, value] in iterable}05
Ghi chú. Khi chúng ta muốn thêm mục vào từ điển hoặc từ điển lồng nhau thì khóa của mục không được tồn tại trong từ điển hoặc từ điển lồng nhau nếu không giá trị của mục sẽ được cập nhật
Cập nhật mục trong từ điển lồng nhau trong Python
Để cập nhật mục trong từ điển lồng nhau, chúng ta cũng có thể sử dụng dấu ngoặc vuông hoặc chỉ mục [ ] như trước đây. Sự khác biệt giữa thêm mục và cập nhật mục là khi thêm mục, khóa phải là khóa mới trong khi với mục cập nhật, khóa phải là khóa hiện có. Ví dụ,
{key: value for [key, value] in iterable}06
đầu ra
{key: value for [key, value] in iterable}07
Ghi chú. Nếu khóa không tồn tại trong từ điển hoặc từ điển lồng nhau, mục [khóa. value] sẽ được thêm từ điển hoặc từ điển lồng nhau
Câu hỏi trắc nghiệm về từ điển và từ điển lồng nhau trong Python
1. Đầu ra của mã Python này sẽ là gì?
{key: value for [key, value] in iterable}08
a. ] Lỗi cú pháp
b. ] dict_items[[[‘xoài’, 2], [‘chuối’, 5], [‘dứa’, 3], [‘cam’, 10]]]
c. ] dict_items[[[2, ‘xoài’], [5, ‘chuối’], [3, ‘dứa’], [10, ‘cam’]]]
d. ] dict_items[[2, 5, 3, 10]]
b. dict_items[[[‘xoài’, 2], [‘chuối’, 5], [‘dứa’, 3], [‘cam’, 10]]]
biện minh. Câu trả lời là b vì trong từ điển, một mục là cấu thành của cặp [khóa. giá trị]. Vì vậy, phương thức items[] của từ điển trả về dưới dạng danh sách một bộ tương ứng với mỗi cặp [key. giá trị]
2. Chọn đầu ra chính xác giữa những
{key: value for [key, value] in iterable}09
a. ] xoài chuối dứa cam
b. ] 2 5 3 10
c. ] “xoài” 2 “chuối” 5 “dứa” 3 “cam” 10
d. ] Lỗi, nó phải là. cho trái cây trong trái cây. giá trị[]
a. xoài chuối dứa cam
3. Đầu ra của mã Python này sẽ là gì?
{key: value for [key, value] in iterable}10
a. ] 2
b. ] 10
c. ] KeyError
d. ] Không có điều nào ở trên
c. Lỗi chính
biện minh. Đáp án của câu này là c. KeyError vì nếu khóa không tồn tại trong phương thức pop[] từ điển sẽ gây ra lỗi keyError
4. Phát biểu nào sau đây sai về khóa từ điển?
a. ] Các phím phải là đối tượng danh sách
b. ] Khóa phải là bất biến
c. ] Khóa phải là số nguyên
d. ] Không được phép có nhiều hơn một phím
a. khóa phải là đối tượng danh sách
c. Khóa phải là số nguyên
a. khóa phải là đối tượng danh sách
biện minh. Các đối tượng danh sách có thể thay đổi, chúng không thể được sử dụng làm khóa vì các khóa phải không thay đổi
c. Khóa phải là số nguyên
biện minh. Khóa có thể là một số nguyên nhưng nó không phải là nghĩa vụ
5. Đầu ra của mã Python này sẽ là gì?
{key: value for [key, value] in iterable}11
a. ] Không có
b. ] {Không có. Không, Không. Không, Không. Không, Không. Không có}
c. ] { }
d. ] {"quả xoài". Không, “chuối”. Không, “dứa”. Không có, “màu cam”. Không có}
c. ] { }
biện minh. phương thức clear[] xóa tất cả các mục trong từ điển và trả về từ điển trống
6. Đầu ra của mã Python này sẽ là gì?
{key: value for [key, value] in iterable}12
a. ] Một. {"trái xoài". 2, “chuối”. 5, “dứa”. 3, “màu cam”. 10}
b. ] Không có
c. ] Lỗi, phương thức sao chép không tồn tại cho từ điển
d. ] Không có điều nào ở trên
a. {"trái xoài". 2, “chuối”. 5, “dứa”. 3, “màu cam”. 10}
7. Đầu ra của mã Python sau đây sẽ là gì?
{key: value for [key, value] in iterable}13
a. ] Lỗi
b. ] Không có
c. ] { "quả xoài". 2, “chuối”. 5, “dứa”. 3, “màu cam”. 10, “quả táo”. số 8}
d. ] KeyError
c. { "quả xoài". 2, “chuối”. 5, “dứa”. 3, “màu cam”. 10, “quả táo”. số 8}
8. Đầu ra của mã Python sau đây sẽ là gì?
{key: value for [key, value] in iterable}14
a. ] Không tồn tại phương thức gọi là setdefault cho từ điển
b. ] 10
c. ] { "quả xoài". 2, “chuối”. 5, “dứa”. 3, “màu cam”. 10}
d. ] KeyError
b. 10
9. Câu lệnh nào sau đây là khai báo từ điển
a. ] dict[[ [1, 8], [“A”, 10] ]]
b. ] { 1, “xoài”, 2, “cam”, 3, “táo” }
c. ] { }
d. ] Không có điều nào ở trên
a. dict[[ [1, 8], [“A”, 10] ]]
c. { }
biện minh. Các câu trả lời của câu này là a và c vì từ điển không phải là một tập hợp
10. Đầu ra của mã Python này sẽ là gì?
{key: value for [key, value] in iterable}15
a. ] xoài 2 chuối 5 dứa 3 cam 10
b. ] [“xoài”, 2], [“chuối”, 5], [“dứa”, 3], [“cam”, 10]
c. ] Lỗi
d. ] Dictionary không có phương thức gọi là items[]
a. xoài 2 chuối 5 dứa 3 cam 10
11. Đầu ra của mã Python này sẽ là gì?
{key: value for [key, value] in iterable}16
a. ] Không cập nhật phương thức [] cho từ điển trong Python
b. ] { "quả xoài". 2, “chuối”. 5, “dứa”. 3, “màu cam”. 10}
c. ] {"trái xoài". 2, “chuối”. 5, “dứa”. 3, “màu cam”. 10, “quả táo”. 12, “quả bơ”. 15}
d. ] KeyError
c. {"trái xoài". 2, “chuối”. 5, “dứa”. 3, “màu cam”. 10, “quả táo”. 12, “quả bơ”. 15}
12. đầu ra chính xác giữa những cái này là gì?
{key: value for [key, value] in iterable}17
a. ] Lỗi, cú pháp không hợp lệ
b. ] 14
c. ] quả xoài
d. ] Không có điều nào ở trên
b. 14
biện minh. Phương thức get[] trả về giá trị mặc định nếu khóa không có trong từ điển
13. Kiểm tra đầu ra chính xác
{key: value for [key, value] in iterable}18
a. ] Không có phương thức get[] cho từ điển trong Python
b. ] Lỗi, cú pháp không hợp lệ
c. ] 2
d. ] Không có điều nào ở trên
c. 2
biện minh. Khi key tồn tại trong dictionary phương thức get[] trả về giá trị tương ứng