Cách triển khai từ điển trong python

Bạn muốn đẩy mạnh trò chơi Python của mình?

Như vậy, bạn đã hình dung ra cách sử dụng từ điển trong Python. Bạn biết tất cả về cách từ điển là cấu trúc dữ liệu có thể thay đổi chứa các cặp khóa-giá trị. Bạn hiểu rằng bạn phải cung cấp khóa cho từ điển để truy xuất giá trị. Nhưng có thể bạn chưa nhận ra từ điển trong Python có đủ hình dạng, kích cỡ và từ đủ loại nguồn

Chỉ cần nghĩ xem có bao nhiêu đối tượng trong đời thực có thể được lập mô hình bằng cách sử dụng các cặp khóa-giá trị. sinh viên và điểm số, con người và nghề nghiệp, sản phẩm và giá cả của họ, chỉ để kể tên một số. Từ điển là trung tâm để xử lý dữ liệu trong Python và bạn gặp phải chúng khi tải dữ liệu từ tệp hoặc truy xuất dữ liệu từ web

Vì từ điển Python rất phổ biến nên không có gì ngạc nhiên khi bạn có thể xây dựng chúng từ nhiều nguồn khác nhau. Trong bài viết này, chúng ta khám phá 5 cách để tạo từ điển trong Python. Bắt đầu nào

1. Từ điển Python Từ điển chữ {}

Không ngạc nhiên, đây là phương pháp phổ biến nhất để tạo từ điển trong Python. Tất cả những gì bạn phải làm là khai báo trực tiếp các cặp khóa-giá trị của mình vào mã và nhớ sử dụng định dạng phù hợp

  • Sử dụng
    grades = {
        'John': 7.5,
        'Mary': 8.9,
        'James': 9.0,
        # add more lines here …
    }
    
    0 để mở từ điển
  • Sử dụng
    grades = {
        'John': 7.5,
        'Mary': 8.9,
        'James': 9.0,
        # add more lines here …
    }
    
    1 để xác định các cặp khóa-giá trị
  • Sử dụng
    grades = {
        'John': 7.5,
        'Mary': 8.9,
        'James': 9.0,
        # add more lines here …
    }
    
    2 để tách các cặp khóa-giá trị với nhau
  • Sử dụng
    grades = {
        'John': 7.5,
        'Mary': 8.9,
        'James': 9.0,
        # add more lines here …
    }
    
    3 để đóng từ điển

Đơn giản mà hiệu quả. Đây là một ví dụ cơ bản về giao diện của nó

grades = {'John': 7.5, 'Mary': 8.9, 'James': 9.0}

Từ điển bỏ qua khoảng trắng và ngắt dòng bên trong chúng. Chúng ta có thể tận dụng điều này và chỉ viết một cặp khóa-giá trị trên mỗi dòng. Nó cải thiện khả năng đọc, đặc biệt là khi từ điển của chúng tôi phát triển quá lớn để có thể vừa vặn trong một dòng

grades = {
    'John': 7.5,
    'Mary': 8.9,
    'James': 9.0,
    # add more lines here …
}

2. Từ điển Python Từ Trình xây dựng dict()

Từ điển cũng có thể được xây dựng từ hàm tạo

grades = {
    'John': 7.5,
    'Mary': 8.9,
    'James': 9.0,
    # add more lines here …
}
4 của Python.
grades = {
    'John': 7.5,
    'Mary': 8.9,
    'James': 9.0,
    # add more lines here …
}
4 là một hàm có sẵn trong Python, vì vậy nó luôn có sẵn để sử dụng mà không cần nhập bất cứ thứ gì

Bạn có thể sử dụng hàm tạo

grades = {
    'John': 7.5,
    'Mary': 8.9,
    'James': 9.0,
    # add more lines here …
}
4 của Python theo hai cách. Đầu tiên là cung cấp các cặp khóa-giá trị thông qua các đối số từ khóa

prices = dict(apple=2.5, orange=3.0, peach=4.4)
print(prices)

# output: {'apple': 2.5, 'orange': 3.0, 'peach': 4.4}

Công bằng mà nói phương pháp đầu tiên dễ đọc và dễ hiểu hơn trong nháy mắt. Tuy nhiên, các đối số từ khóa luôn được hiểu là các chuỗi và việc sử dụng các đối số từ khóa có thể không phải là một tùy chọn nếu bạn cần một từ điển trong đó các khóa không phải là các chuỗi. Hãy xem ví dụ này để xem ý tôi là gì

# this works
values = [(1, 'one'), (2, 'two')]
prices = dict(values)

# SyntaxError - a number is not a valid keyword argument!
prices = dict(1='one', 2='two')

Nhân tiện, nếu bạn cần một lời nhắc, hãy xem bài viết tuyệt vời này về bộ dữ liệu và các trình tự khác trong Python

3. Từ điển Python từ tệp JSON

JSON là viết tắt của JavaScript Object Notation và nó là định dạng tệp cực kỳ phổ biến để lưu trữ và truyền dữ liệu trên web. Đây là một tệp JSON ví dụ, được gọi là

grades = {
    'John': 7.5,
    'Mary': 8.9,
    'James': 9.0,
    # add more lines here …
}
7

{
    "name": "Mark",
    "age": 32,
    "likes_dancing": true
}

Nhận thấy bất cứ điều gì? . Các tệp JSON khá giống với từ điển trong Python. Vì vậy, không có gì ngạc nhiên khi bạn có thể tải dữ liệu JSON vào Python rất dễ dàng. Đơn giản là chúng ta cần

  • Nhập mô-đun
    grades = {
        'John': 7.5,
        'Mary': 8.9,
        'James': 9.0,
        # add more lines here …
    }
    
    8 (đừng lo lắng về việc cài đặt bất cứ thứ gì; mô-đun này là một phần của cài đặt cơ bản của Python)
  • Mở tệp
    grades = {
        'John': 7.5,
        'Mary': 8.9,
        'James': 9.0,
        # add more lines here …
    }
    
    7 (hãy xem khóa học này nếu bạn không biết "mở tệp" nghĩa là gì trong Python)
  • Chuyển xử lý tệp đang mở cho hàm
    prices = dict(apple=2.5, orange=3.0, peach=4.4)
    print(prices)
    
    # output: {'apple': 2.5, 'orange': 3.0, 'peach': 4.4}
    
    0

Chúng tôi thực hiện các bước này trong mã bên dưới

import json

with open('person.json', 'r') as json_file:
    person = json.load(json_file)
print(person)

# output: {'name': 'Mark', 'age': 32, 'likes_dancing': True}

Lưu ý rằng bạn cũng có thể đi theo cách khác và viết Python

grades = {
    'John': 7.5,
    'Mary': 8.9,
    'James': 9.0,
    # add more lines here …
}
4 vào tệp JSON. Quá trình này được gọi là tuần tự hóa. Xem bài viết này để biết thêm thông tin về tuần tự hóa

4. Từ điển Python từ hai từ điển sử dụng toán tử liên kết từ điển

Nếu bạn đang sử dụng Python phiên bản 3. 9 trở lên, vẫn còn một cách khác để tạo từ điển trong Python. toán tử kết hợp từ điển (

prices = dict(apple=2.5, orange=3.0, peach=4.4)
print(prices)

# output: {'apple': 2.5, 'orange': 3.0, 'peach': 4.4}
2), được giới thiệu trong Python 3. 9. Nó hợp nhất các cặp khóa-giá trị của hai hoặc nhiều từ điển thành một từ điển duy nhất. Theo nghĩa đó, nó tương tự như toán tử hợp tập hợp (hãy đọc bài viết này nếu bạn không biết toán tử tập hợp là gì)

Đây là một ví dụ về toán tử hợp từ điển đang hoạt động

jobs_1 = {
	'John': 'Engineer',
	'James': 'Physician',
}

jobs_2 = {
	'Jack': 'Journalist',
	'Jill': 'Lawyer',
}

jobs = jobs_1 | jobs_2
print(jobs)

# output: {'John': 'Engineer', 'James': 'Physician', 'Jack': 'Journalist', 'Jill': 'Lawyer'}

Điều quan trọng cần lưu ý là, nếu có các khóa trùng lặp trong từ điển nguồn, thì từ điển kết quả sẽ nhận giá trị từ từ điển nguồn ngoài cùng bên phải. Đây là hậu quả của việc Python không cho phép các khóa trùng lặp trong từ điển. Hãy xem những gì xảy ra ở đây

d1 = {
	'A': 1,
	'B': 2,
}

d2 = {
	'B': 100,
	'C': 3,
}

result = d1 | d2
print(result)

# output: {'A': 1, 'B': 100, 'C': 3}

Như bạn có thể thấy,

prices = dict(apple=2.5, orange=3.0, peach=4.4)
print(prices)

# output: {'apple': 2.5, 'orange': 3.0, 'peach': 4.4}
3 xuất hiện trong cả
prices = dict(apple=2.5, orange=3.0, peach=4.4)
print(prices)

# output: {'apple': 2.5, 'orange': 3.0, 'peach': 4.4}
4 và
prices = dict(apple=2.5, orange=3.0, peach=4.4)
print(prices)

# output: {'apple': 2.5, 'orange': 3.0, 'peach': 4.4}
5. Giá trị trong từ điển
prices = dict(apple=2.5, orange=3.0, peach=4.4)
print(prices)

# output: {'apple': 2.5, 'orange': 3.0, 'peach': 4.4}
6 đến từ
prices = dict(apple=2.5, orange=3.0, peach=4.4)
print(prices)

# output: {'apple': 2.5, 'orange': 3.0, 'peach': 4.4}
5, từ điển nguồn ngoài cùng bên phải trong biểu thức
prices = dict(apple=2.5, orange=3.0, peach=4.4)
print(prices)

# output: {'apple': 2.5, 'orange': 3.0, 'peach': 4.4}
8. Cặp khóa-giá trị
prices = dict(apple=2.5, orange=3.0, peach=4.4)
print(prices)

# output: {'apple': 2.5, 'orange': 3.0, 'peach': 4.4}
9 từ
prices = dict(apple=2.5, orange=3.0, peach=4.4)
print(prices)

# output: {'apple': 2.5, 'orange': 3.0, 'peach': 4.4}
4 bị mất. Hãy ghi nhớ điều này khi sử dụng toán tử hợp từ điển

5. Từ điển Python từ một cách hiểu Dict

Bạn đã nghe nói về hiểu danh sách?

Nhưng nó có liên quan gì đến việc xây dựng từ điển trong Python? . Trong ví dụ dưới đây, chúng tôi lấy một danh sách các chuỗi và xây dựng một từ điển từ chúng. Mỗi khóa chính là chuỗi và giá trị tương ứng là độ dài của nó. Hãy xem

animals = ['cat', 'lion', 'monkey']
animal_dict = {animal: len(animal) for animal in animals}
print(animal_dict)

# output: {'cat': 3, 'lion': 4, 'monkey': 6}

Xem làm thế nào nó hoạt động?

Đây là một ví dụ phức tạp hơn. Chúng tôi sử dụng khả năng hiểu chính tả để lọc các giá trị từ một từ điển có sẵn. Xem nếu bạn có thể tìm ra những gì đoạn mã dưới đây làm

ages = {
    'Bill': 23,
    'Steve': 34,
    'Maria': 21,
}
filtered_ages = {name: age for name, age in ages.items() if age < 30}
print(filtered_ages)

# output: {'Bill': 23, 'Maria': 21}

Bạn có thấy điều gì xảy ra không? . Nhưng chúng tôi thêm bit

# this works
values = [(1, 'one'), (2, 'two')]
prices = dict(values)

# SyntaxError - a number is not a valid keyword argument!
prices = dict(1='one', 2='two')
7 vào cuối. Vì vậy, trong quá trình xây dựng,
# this works
values = [(1, 'one'), (2, 'two')]
prices = dict(values)

# SyntaxError - a number is not a valid keyword argument!
prices = dict(1='one', 2='two')
6 bỏ qua các cặp khóa-giá trị có tuổi bằng hoặc lớn hơn 30. Nói cách khác, chúng tôi lọc từ điển gốc, chỉ chọn các cặp khóa-giá trị có giá trị nhỏ hơn 30. Đó là một số công cụ mạnh mẽ

Tạo từ điển trong Python

Trong bài viết này, chúng tôi đã thảo luận về 5 cách để tạo từ điển trong Python. Chúng tôi đã đi từ những điều cơ bản nhất về nghĩa đen của từ điển

# this works
values = [(1, 'one'), (2, 'two')]
prices = dict(values)

# SyntaxError - a number is not a valid keyword argument!
prices = dict(1='one', 2='two')
9 và hàm tạo
grades = {
    'John': 7.5,
    'Mary': 8.9,
    'James': 9.0,
    # add more lines here …
}
4 của Python, đến các ví dụ phức tạp hơn về tệp JSON, toán tử kết hợp từ điển và khả năng hiểu chính tả

Hy vọng bạn đã học được một cái gì đó mới. Nếu bạn muốn nhiều hơn, hãy nhớ truy cập LearnPython. com cho tất cả những thứ liên quan đến Python

Bạn sẽ triển khai từ điển Python như thế nào?

Từ điển trong Python được triển khai bằng cấu trúc dữ liệu được gọi là bảng băm
Bảng băm sử dụng danh sách/mảng để lưu trữ các cặp khóa-giá trị và sử dụng hàm băm để xác định chỉ mục để lưu trữ hoặc truy xuất dữ liệu được liên kết với một khóa đã cho

Làm cách nào để khởi tạo một từ điển trong Python?

Một cách khác để khởi tạo từ điển python là sử dụng hàm “dict()” tích hợp trong mã . Vì vậy, bạn phải khai báo một biến và gán cho nó hàm “dict()” làm giá trị đầu vào. Sau đó, chức năng in tương tự ở đây để in ra từ điển đã khởi tạo.

Làm thế nào để dict() hoạt động trong Python?

Hàm Python dict() là hàm tạo để tạo từ điển . Từ điển Python cung cấp ba hàm tạo khác nhau để tạo từ điển. Nếu không có đối số nào được thông qua, nó sẽ tạo ra một từ điển trống. Nếu một đối số vị trí được cung cấp, một từ điển sẽ được tạo với cùng các cặp khóa-giá trị.