Cách lấy khóa từ từ điển lồng nhau python

Nói chung, phẳng tốt hơn lồng nhau. Vì vậy, nếu bạn không cần làm tổ, thì tốt hơn hết là không nên

Điều đó nói rằng, có những lúc lồng nhau là một giải pháp sạch hơn, nhưng hãy nghĩ về cấu trúc dữ liệu của bạn.

# 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}}
8 , đó là một Tuple, phải không?

Giờ đây, bạn có thể có một từ điển các Bộ dữ liệu, truy cập ít rắc rối hơn;

def menu[key]:
    items = {
        1: ["Ham & Cheese", 5],
        2: ["Cheesy Garlic", 5],
        3: ["Hawaiian", 5],
        4: ["Classic Cheese", 5]
        }
    return items.get[key]

… mà có thể được truy cập 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]
1 mà lần lượt có thể được lặp lại

for key in range[1,5]:
    name, price = menu[key]
    print[name, price]

Khi bạn đã đi xa đến mức đó và nó đang làm những gì bạn muốn, bạn có thể sáng tạo một chút với hàm

# 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]
0 trong vòng lặp đó và có một cái gì đó như thế 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]
3 trông có vẻ hơi đáng sợ, nhưng không khó để phân biệt, đây sẽ là một điều tốt để bạn làm, để bạn mở rộng những gì bạn đã học được

Từ điển lồng 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 [

# 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] 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 [______34] 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

for key in range[1,5]:
    name, price = menu[key]
    print[name, price]
0

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 key in range[1,5]:
    name, price = menu[key]
    print[name, price]
1
  • 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 để truy xuất 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ị

for key in range[1,5]:
    name, price = menu[key]
    print[name, price]
7

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

for key in range[1,5]:
    name, price = menu[key]
    print[name, price]
8
  • 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
    # 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 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ị [______46]
    • 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 đến 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]

# 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}}
7

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

Chủ Đề