Kích thước của python từ điển lồng nhau

để 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

Show

(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ị_2

  • Hiể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ị -

    1. 'năm'. 2022
    2. 'tháng'. 'Tháng tư'
    3. 'ngày'. 'Thứ Tư'
    4. '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}
    
    7

    Tạ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}
    
    9

    Ghi 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 –

  1. 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)
    
    9

    Ghi 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'}
    
    1
  2. Sử 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'}
    
    7

    khó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'}
    
    9

    từ 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, ...)
    
    1

    Mộ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,

  1. values() trả về tất cả các giá trị có trong từ điển
  2. 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
  3. 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 -

  1. 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ển

  2. Sử 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()

  3. 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 del

    del 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)
    
    9

    Vì 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 Del

    Khó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'}
    
    1
  4. Sử 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'}
    
    3

    Ghi 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

  1. 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'}
    
    5

    Cá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'}
    
    5

    keys() 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

  2. 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'}
    
    9
  3. Lặ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()
  1. Xóa khóa đã chỉ định và trả về giá trị tương ứng
  2. 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
thiết lập mặc định ()
  1. Lấy làm khóa đối số và giá trị mặc định của nó
  2. Chèn khóa có giá trị mặc định nếu khóa không có trong từ điển
  3. Trả về giá trị cho khóa nếu khóa có trong từ điển, nếu không thì mặc định
popitem()
  1. Xóa và trả về một cặp (khóa, giá trị) dưới dạng 2 bộ
  2. Các cặp được trả về theo thứ tự LIFO (vào sau, ra trước)
  3. Tăng KeyError nếu từ điển trống
thông thoáng()
  1. Xóa tất cả các mục khỏi từ điển và trả về Không có
  2. Nhưng đối tượng từ điển vẫn còn trong bộ nhớ
được()
  1. Lấy khóa và giá trị mặc định của nó làm đối số
  2. Trả về giá trị cho khóa nếu khóa có trong từ điển, nếu không thì mặc định
giá trị()
  1. Trả về một đối tượng cung cấp chế độ xem trên các giá trị của từ điển
  2. 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
  3. 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)
phím()
  1. Trả về một đối tượng cung cấp chế độ xem trên các khóa của từ điển
  2. 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
  3. 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)
mặt hàng()
  1. Trả về một đối tượng cung cấp chế độ xem trên các mục của từ điển
  2. 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ị))
sao chép()
  1. 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
cập nhật()
  1. 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ển

Từ đ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 –

  1. 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)
    
    3
  2. Sử 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)
    
    5

    Bâ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

  1. 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, ...)
    
    5

    Hã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, ...)
    
    1
  2. Sử 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, ...)
    
    1

    Hã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

Kích thước của một từ điển trong Python là bao nhiêu?

kích thước của a = 196880 byte . Cái đầu tiên có 2000 phím và cái thứ hai có 2 phím và mỗi cái có dict với 1000 phím.

Kích thước byte của từ điển trong Python là gì?

Trong bản tóm tắt, một mục từ điển là ba con trỏ; . Trên máy 32 bit, giá trị này là 12 byte và trên máy 64 bit là 24 byte .

Kích thước tối đa của từ điển Python là bao nhiêu?

Về nguyên tắc không có giới hạn về kích thước đối với từ điển trong Python, ngoại trừ dung lượng bộ nhớ khả dụng của bạn (RAM + Dung lượng hoán đổi).

Độ phức tạp không gian của từ điển Python là gì?

Từ điển sử dụng cấu trúc dữ liệu mảng kết hợp có độ phức tạp về không gian O(N) .