In tất cả các khóa và giá trị trong python từ điển lồng nhau

Từ điển lồng nhau trong Python là một từ điển với một từ điển khác hoặc các từ điển được lồng bên trong (từ điển của các từ điển hoặc bộ sưu tập các bộ sưu tập). Từ điển lồng nhau là một cách để biểu diễn dữ liệu có cấu trúc (tương tự như mối quan hệ của (các) bảng cơ sở dữ liệu). Tương tự cho khái niệm này là Búp bê làm tổ của Nga.  

Bài viết của chúng tôi tập trung vào các cách khác nhau để truy xuất dữ liệu từ một từ điển lồng nhau


Tạo một từ điển lồng nhau

Đoạn mã sau tạo một từ điển chứa các id duy nhất (1000, 1001, v.v. ). Ngoài ra, mỗi id có một từ điển lồng nhau được liên kết với thông tin thích hợp liên quan đến id đó (tên, công việc, mức lương)

# raw data:
employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567},
             1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275},
             1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500},
             1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354},
             1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}}

Truy cập các giá trị lồng nhau bằng dấu ngoặc vuông

Một cách để truy cập (các) giá trị từ một từ điển lồng nhau (

76500
6) là chỉ định một khóa bên trong dấu ngoặc vuông. Nếu khóa không tồn tại, KeyError sẽ xảy ra, hiển thị tên khóa vi phạm. Đoạn code bên dưới truy cập và xuất ra lương cho nhân viên 1002

# raw data:
employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567},
             1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275},
             1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500},
             1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354},
             1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}}

result = employees[1002]['salary']
print(result)

đầu ra

76500

Truy cập các giá trị bằng cách sử dụng get()

Một cách khác để truy cập (các) giá trị trong từ điển lồng nhau (_______26) là sử dụng phương thức

# raw data:
employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567},
             1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275},
             1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500},
             1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354},
             1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}}

result = employees[1002]['salary']
print(result)
1. Phương thức này trả về giá trị cho một khóa được chỉ định. Nếu khóa được chỉ định không tồn tại, phương thức
# raw data:
employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567},
             1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275},
             1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500},
             1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354},
             1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}}

result = employees[1002]['salary']
print(result)
2 trả về
# raw data:
employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567},
             1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275},
             1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500},
             1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354},
             1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}}

result = employees[1002]['salary']
print(result)
3 (ngăn chặn một
# raw data:
employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567},
             1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275},
             1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500},
             1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354},
             1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}}

result = employees[1002]['salary']
print(result)
4). Đoạn code bên dưới truy cập và xuất công việc cho nhân viên 1003

# raw data:
employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567},
             1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275},
             1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500},
             1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354},
             1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}}

result = employees[1003].get('job')
print(result)

đầu ra

________số 8

Lặp lại Từ điển lồng nhau bằng vòng lặp For

Dưới đây là mã để duyệt qua một từ điển lồng nhau

for id, info in employees.items():
    print(id)
    for k in info:
        print(k, info[k])
  • Dòng [1] gọi vòng lặp for, tham chiếu
    # raw data:
    employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567},
                 1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275},
                 1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500},
                 1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354},
                 1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}}
    
    result = employees[1002]['salary']
    print(result)
    5 từ từ điển cấp cao nhất,
    # raw data:
    employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567},
                 1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275},
                 1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500},
                 1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354},
                 1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}}
    
    result = employees[1002]['salary']
    print(result)
    6 từ từ điển lồng nhau và gọi
    # raw data:
    employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567},
                 1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275},
                 1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500},
                 1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354},
                 1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}}
    
    result = employees[1002]['salary']
    print(result)
    7 để lấy dữ liệu thích hợp
    • Dòng [2] xuất
      # raw data:
      employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567},
                   1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275},
                   1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500},
                   1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354},
                   1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}}
      
      result = employees[1002]['salary']
      print(result)
      5 cho mỗi bản ghi trong từ điển cấp cao nhất
    • Dòng [3] lặp qua từ điển lồng nhau cho mỗi
      # raw data:
      employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567},
                   1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275},
                   1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500},
                   1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354},
                   1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}}
      
      result = employees[1002]['salary']
      print(result)
      5
      • Dòng [4] xuất khóa. cặp giá trị đến thiết bị đầu cuối

Đầu ra – bản ghi đầu tiên từ Nhân viên

Đối với ví dụ này, chỉ bản ghi đầu tiên hiển thị

# raw data:
employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567},
             1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275},
             1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500},
             1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354},
             1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}}

result = employees[1002]['salary']
print(result)
5

Truy cập các giá trị lồng nhau bằng Pandas

Thư viện Pandas sẽ chuyển đổi từ điển lồng nhau thành DataFrame để truy cập dữ liệu trong phần này

# raw data:
employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567},
             1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275},
             1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500},
             1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354},
             1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}}

result = employees[1002]['salary']
print(result)
6
  • Dòng [1] nhập thư viện và gán nó làm tham chiếu đối tượng cho
    76500
    0.  
  • Dòng [2] tạo DataFrame và đặt đầu ra thành
    76500
    1. DataFrame có hai đối số. từ điển
    76500
    6 và
    76500
    3. Đối số
    76500
    4 buộc
    # raw data:
    employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567},
                 1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275},
                 1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500},
                 1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354},
                 1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}}
    
    result = employees[1002]['salary']
    print(result)
    5 hiển thị ở cột ngoài cùng bên trái
  • Dòng [3] bắt đầu lặp vòng lặp. Câu lệnh này lặp lại cho đến khi không còn hàng nào để hiển thị (______26)
    • Dòng [4] xuất nội dung của
      # raw data:
      employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567},
                   1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275},
                   1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500},
                   1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354},
                   1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}}
      
      result = employees[1002]['salary']
      print(result)
      5 ra thiết bị đầu cuối
    • Dòng [5] xuất các giá trị được liên kết với
      # raw data:
      employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567},
                   1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275},
                   1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500},
                   1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354},
                   1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}}
      
      result = employees[1002]['salary']
      print(result)
      5 đó đến thiết bị đầu cuối

Đầu ra (Khung dữ liệu Pandas)

têncông việclương1000Dereksupport895671001Alicecoder942751002Luciawriter765001003Micahtrainer813541004Sarahsales64152

Đầu ra (bản ghi đầu tiên từ Nhân viên)

76500
5

Lập Trình Hài Hước

💡 Lập trình là 10% khoa học, 20% sự khéo léo và 70% để sự khéo léo làm việc với khoa học

Làm cách nào tôi có thể trích xuất tất cả các giá trị từ một từ điển trong Python?

Phương pháp #1. Sử dụng vòng lặp + phím() . Đây có thể là một trong những phương pháp để thực hiện nhiệm vụ này.

Làm cách nào để trích xuất tất cả các giá trị từ một từ điển?

Cách trích xuất các giá trị từ điển dưới dạng danh sách .
(1) Sử dụng hàm list(). my_list = danh sách (my_dict. giá trị())
(2) Sử dụng cách hiểu danh sách. my_list = [i cho tôi trong my_dict. giá trị()]
(3) Sử dụng vòng lặp For. my_list = [] cho tôi trong my_dict. giá trị(). danh sách của tôi. nối thêm (i)