HomeLập trìnhPythonTạo từ điển...

Tạo từ điển bằng Python – Python Dict Methods


Trong bài viết này, bạn sẽ tìm hiểu kiến ​​thức cơ bản về từ điển trong Python.

Bạn sẽ học cách tạo từ điển, truy cập các phần tử bên trong chúng và cách sửa đổi chúng tùy theo nhu cầu của bạn.

Bạn cũng sẽ tìm hiểu một số phương pháp tích hợp phổ biến nhất được sử dụng trên từ điển.

Đây là những gì chúng tôi sẽ đề cập:

  1. Định nghĩa từ điển
    1. Xác định một từ điển trống
    2. Xác định một từ điển với các mục
  2. Tổng quan về khóa và giá trị
    1.Tìm số lượng key-value các cặp có trong từ điển
    2.Xem tất cả key-value cặp
    3.Xem tất cả keys
    4.Xem tất cả values
  3. Truy cập các mục riêng lẻ
  4. Sửa đổi từ điển
    1. Thêm mục mới
    2. Cập nhật các mục
    3. Xóa mục

Cách tạo từ điển bằng Python

Từ điển trong Python được tạo thành từ các cặp khóa-giá trị.

Trong hai phần tiếp theo, bạn sẽ thấy hai cách tạo từ điển.

Cách đầu tiên là sử dụng một bộ dấu ngoặc nhọn, {}và cách thứ hai là sử dụng tích hợp sẵn dict() chức năng.

Cách tạo một từ điển trống trong Python

Để tạo một từ điển trống, trước tiên hãy tạo một tên biến sẽ là tên của từ điển.

Sau đó, gán biến cho một tập hợp dấu ngoặc nhọn trống, {}.

#create an empty dictionary
my_dictionary = {}

print(my_dictionary)

#to check the data type use the type() function
print(type(my_dictionary))

#output

#{}
#<class 'dict'>

Một cách khác để tạo một từ điển rỗng là sử dụng dict() chức năng mà không cần truyền bất kỳ đối số nào.

Nó hoạt động như một hàm tạo và tạo một từ điển trống:

#create an empty dictionary
my_dictionary = dict()

print(my_dictionary)

#to check the data type use the type() function
print(type(my_dictionary))

#output

#{}
#<class 'dict'>

Cách tạo từ điển với các mục trong Python

Để tạo một từ điển với các mục, bạn cần bao gồm giá trị cốt lõi cặp bên trong dấu ngoặc nhọn.

Cú pháp chung cho điều này là như sau:

dictionary_name = {key: value}

Hãy chia nhỏ nó ra:

  • dictionary_name là tên biến. Đây là tên mà từ điển sẽ có.
  • = là toán tử gán để gán key:value cặp với dictionary_name.
  • Bạn khai báo một từ điển với một bộ dấu ngoặc nhọn, {}.
  • Bên trong dấu ngoặc nhọn, bạn có một cặp khóa-giá trị. Các khóa được phân tách khỏi các giá trị được liên kết của chúng bằng dấu hai chấm, :.

Hãy xem một ví dụ về việc tạo một từ điển với các mục:

#create a dictionary
my_information = {'name': 'Dionysia', 'age': 28, 'location': 'Athens'}

print(my_information)

#check data type
print(type(my_information))

#output

#{'name': 'Dionysia', 'age': 28, 'location': 'Athens'}
#<class 'dict'>

Trong ví dụ trên, có một chuỗi các phần tử trong dấu ngoặc nhọn.

Cụ thể, có ba cặp khóa-giá trị: 'name': 'Dionysia', 'age': 28'location': 'Athens'.

Các phím là name, agelocation. Các giá trị liên quan của chúng là Dionysia, 28Athenstương ứng.

Khi có nhiều cặp khóa-giá trị trong từ điển, mỗi cặp khóa-giá trị được phân tách với cặp tiếp theo bằng dấu phẩy, ,.

Hãy xem một ví dụ khác.

Giả sử bạn muốn tạo một từ điển với các mục bằng cách sử dụng dict() chức năng lần này thay thế.

Bạn sẽ đạt được điều này bằng cách sử dụng dict() và chuyển các dấu ngoặc nhọn với chuỗi các cặp khóa-giá trị được bao gồm trong chúng làm đối số cho hàm.

#create a dictionary with dict()
my_information = dict({'name': 'Dionysia' ,'age': 28,'location': 'Athens'})

print(my_information)

#check data type
print(type(my_information))

#output

#{'name': 'Dionysia', 'age': 28, 'location': 'Athens'}
#<class 'dict'>

Điều đáng nói là fromkeys() phương thức, đây là một cách khác để tạo từ điển.

Nó nhận một chuỗi mục được xác định trước làm đối số và trả về một từ điển mới với các mục trong chuỗi được đặt làm khóa được chỉ định của từ điển.

Bạn có thể tùy ý đặt giá trị cho tất cả các khóa, nhưng theo mặc định, giá trị cho các khóa sẽ là None.

Cú pháp chung của phương thức như sau:

dictionary_name = dict.fromkeys(sequence,value)

Hãy xem một ví dụ về việc tạo từ điển bằng cách sử dụng fromkeys() mà không đặt giá trị cho tất cả các khóa:

#create sequence of strings
cities = ('Paris','Athens', 'Madrid')

#create the dictionary, `my_dictionary`, using the fromkeys() method
my_dictionary = dict.fromkeys(cities)

print(my_dictionary)

#{'Paris': None, 'Athens': None, 'Madrid': None}

Bây giờ hãy xem một ví dụ khác đặt giá trị giống nhau cho tất cả các khóa trong từ điển:

#create a sequence of strings
cities = ('Paris','Athens', 'Madrid')

#create a single value
continent="Europe"

my_dictionary = dict.fromkeys(cities,continent)

print(my_dictionary)

#output

#{'Paris': 'Europe', 'Athens': 'Europe', 'Madrid': 'Europe'}

Tổng quan về Khóa và Giá trị trong Từ điển bằng Python

Các khóa bên trong từ điển Python có thể chỉ thuộc loại không thay đổi.

Đọc thêm  Giải thích câu lệnh nhập Python

Các kiểu dữ liệu bất biến trong Python là integers, strings, tuples, floating point numbersBooleans.

phím từ điển không thể thuộc loại có thể thay đổi, chẳng hạn như sets, listshoặc dictionaries.

Vì vậy, giả sử bạn có từ điển sau:

my_dictionary = {True: "True",  1: 1,  1.1: 1.1, "one": 1, "languages": ["Python"]}

print(my_dictionary)

#output

#{True: 1, 1.1: 1.1, 'one': 1, 'languages': ['Python']}

Các khóa trong từ điển là Boolean, integer, floating point numberstring loại dữ liệu, tất cả đều được chấp nhận.

Nếu bạn cố gắng tạo một khóa thuộc loại có thể thay đổi, bạn sẽ gặp lỗi – cụ thể lỗi sẽ là TypeError.

my_dictionary = {["Python"]: "languages"}

print(my_dictionary)

#output

#line 1, in <module>
#    my_dictionary = {["Python"]: "languages"}
#TypeError: unhashable type: 'list'

Trong ví dụ trên, tôi đã cố gắng tạo một khóa thuộc loại list type (một kiểu dữ liệu có thể thay đổi). Điều này dẫn đến một TypeError: unhashable type: 'list' lỗi.

Khi nói đến các giá trị bên trong từ điển Python, không có giới hạn nào. Các giá trị có thể thuộc bất kỳ loại dữ liệu nào – nghĩa là chúng có thể thuộc cả hai loại có thể thay đổi và không thể thay đổi.

Một điều khác cần lưu ý về sự khác biệt giữa khóa và giá trị trong từ điển Python, đó là thực tế là các khóa duy nhất. Điều này có nghĩa là một khóa chỉ có thể xuất hiện một lần trong từ điển, trong khi có thể có các giá trị trùng lặp.

Làm thế nào để tìm số lượng key-value Các cặp chứa trong một từ điển trong Python

Các len() hàm trả về tổng chiều dài của đối tượng được truyền dưới dạng đối số.

Khi một từ điển được chuyển làm đối số cho hàm, nó sẽ trả về tổng số cặp khóa-giá trị có trong từ điển.

Đây là cách bạn tính toán số lượng cặp khóa-giá trị bằng cách sử dụng len():

my_information = {'name': 'Dionysia', 'age': 28, 'location': 'Athens'}

print(len(my_information))

#output

#3

Cách xem tất cả key-value Các cặp chứa trong một từ điển trong Python

Để xem mọi cặp khóa-giá trị trong từ điển, hãy sử dụng công cụ tích hợp sẵn items() phương pháp:

year_of_creation = {'Python': 1993, 'JavaScript': 1995, 'HTML': 1993}

print(year_of_creation.items())

#output

#dict_items([('Python', 1993), ('JavaScript', 1995), ('HTML', 1993)])

Các items() phương thức trả về một danh sách các bộ chứa các cặp khóa-giá trị bên trong từ điển.

Cách xem tất cả keys Chứa trong một từ điển trong Python

Để xem tất cả các khóa có trong từ điển, hãy sử dụng chức năng tích hợp keys() phương pháp:

year_of_creation = {'Python': 1993, 'JavaScript': 1995, 'HTML': 1993}

print(year_of_creation.keys())

#output

#dict_keys(['Python', 'JavaScript', 'HTML'])

Các keys() phương thức trả về một danh sách chỉ chứa các khóa bên trong từ điển.

Cách xem tất cả values Chứa trong một từ điển trong Python

Để xem tất cả các giá trị bên trong từ điển, hãy sử dụng công cụ tích hợp sẵn values() phương pháp:

year_of_creation = {'Python': 1993, 'JavaScript': 1995, 'HTML': 1993}

print(year_of_creation.values())

#output

#dict_values([1993, 1995, 1993])

Các values() phương thức trả về một danh sách chỉ chứa các giá trị bên trong từ điển.

Cách truy cập các mục riêng lẻ trong từ điển bằng Python

Khi làm việc với danh sách, bạn truy cập các mục danh sách bằng cách nhắc đến tên danh sách và sử dụng ký hiệu dấu ngoặc vuông. Trong dấu ngoặc vuông, bạn chỉ định số chỉ mục (hoặc vị trí) của mục đó.

Bạn không thể làm chính xác như vậy với từ điển.

Khi làm việc với từ điển, bạn không thể truy cập một phần tử bằng cách tham chiếu số chỉ mục của nó, vì từ điển chứa các cặp khóa-giá trị.

Thay vào đó, bạn truy cập mục bằng cách sử dụng tên từ điển và ký hiệu dấu ngoặc vuông, nhưng lần này trong dấu ngoặc vuông bạn chỉ định một khóa.

Mỗi khóa tương ứng với một giá trị cụ thể, vì vậy bạn đề cập đến khóa được liên kết với giá trị bạn muốn truy cập.

Đọc thêm  Khả năng hiểu Len, Pop, Chỉ mục và Danh sách

Cú pháp chung để làm như vậy là như sau:

dictionary_name[key]

Hãy xem ví dụ sau về cách truy cập một mục trong từ điển Python:

my_information = {'name': 'Dionysia', 'age': 28, 'location': 'Athens'}

#access the value associated with the 'age' key
print(my_information['age'])

#output

#28

Điều gì sẽ xảy ra khi bạn cố gắng truy cập một khóa không tồn tại trong từ điển?

my_information = {'name': 'Dionysia', 'age': 28, 'location': 'Athens'}

#try to access the value associated with the 'job' key
print(my_information['job'])

#output

#line 4, in <module>
#    print(my_information['job'])
#KeyError: 'job'

Nó dẫn đến một KeyError vì không có khóa nào như vậy trong từ điển.

Một cách để tránh điều này xảy ra là trước tiên hãy tìm kiếm xem liệu khóa có trong từ điển ngay từ đầu hay không.

Bạn làm điều này bằng cách sử dụng in từ khóa trả về giá trị Boolean. Nó trở lại True nếu khóa nằm trong từ điển và False nếu nó không phải là.

my_information = {'name': 'Dionysia', 'age': 28, 'location': 'Athens'}

#search for the 'job' key
print('job' in my_information)

#output

#False

Một cách khác để giải quyết vấn đề này là truy cập các mục trong từ điển bằng cách sử dụng get() phương pháp.

Bạn chuyển khóa mà bạn đang tìm kiếm làm đối số và get() trả về giá trị tương ứng với khóa đó.

my_information = {'name': 'Dionysia', 'age': 28, 'location': 'Athens'}

#try to access the 'job' key using the get() method
print(my_information.get('job'))

#output

#None

Như bạn để ý, khi bạn đang tìm kiếm một khóa không tồn tại, theo mặc định get() lợi nhuận None Thay vì một KeyError.

Nếu thay vì hiển thị mặc định đó None giá trị bạn muốn hiển thị thông báo khác khi khóa không tồn tại, bạn có thể tùy chỉnh get() bằng cách cung cấp một giá trị khác.

Bạn làm như vậy bằng cách chuyển giá trị mới làm đối số tùy chọn thứ hai cho get() phương pháp:

my_information = {'name': 'Dionysia', 'age': 28, 'location': 'Athens'}

#try to access the 'job' key using the get() method
print(my_information.get('job', 'This value does not exist'))

#output

#This value does not exist

Bây giờ khi bạn đang tìm kiếm một khóa và nó không có trong từ điển, bạn sẽ thấy thông báo This value does not exist xuất hiện trên bàn điều khiển.

Cách sửa đổi từ điển trong Python

Từ điển là có thể thay đổicó nghĩa là chúng có thể thay đổi được.

Chúng có thể phát triển và thu nhỏ trong suốt vòng đời của chương trình.

Có thể thêm các mục mới, các mục hiện có có thể được cập nhật với các giá trị mới và có thể xóa các mục.

Cách thêm mục mới vào từ điển trong Python

Để thêm một cặp khóa-giá trị vào từ điển, hãy sử dụng ký hiệu dấu ngoặc vuông.

Cú pháp chung để làm như vậy là như sau:

dictionary_name[key] = value

Đầu tiên, chỉ định tên của từ điển. Sau đó, trong dấu ngoặc vuông, tạo khóa và gán giá trị cho khóa.

Giả sử bạn đang bắt đầu với một từ điển trống:

my_dictionary = {}

print(my_dictionary)

#output

#{}

Đây là cách bạn sẽ thêm một cặp khóa-giá trị vào my_dictionary:

my_dictionary = {}

#add a key-value pair to the empty dictionary
my_dictionary['name'] = "John Doe"

#print dictionary
print(my_list)

#output

#{'name': 'John Doe'}

Đây là cách bạn sẽ thêm một cặp khóa-giá trị mới khác:

my_dictionary = {}

#add a key-value pair to the empty dictionary
my_dictionary['name'] = "John Doe"

# add another  key-value pair
my_dictionary['age'] = 34

#print dictionary
print(my_dictionary)

#output

#{'name': 'John Doe', 'age': 34}

Hãy nhớ rằng nếu khóa bạn đang cố gắng thêm đã tồn tại trong từ điển đó và bạn đang gán cho nó một giá trị khác, thì khóa đó sẽ được cập nhật.

Hãy nhớ rằng các khóa cần phải là duy nhất.

my_dictionary = {'name': "John Doe", 'age':34}

print(my_dictionary)

#try to create a an 'age' key and assign it a value
#the 'age' key already exists

my_dictionary['age'] = 46

#the value of 'age' will now be updated

print(my_dictionary)

#output

#{'name': 'John Doe', 'age': 34}
#{'name': 'John Doe', 'age': 46}

Nếu bạn muốn ngăn việc vô tình thay đổi giá trị của một khóa đã tồn tại, bạn có thể muốn kiểm tra xem khóa bạn đang cố gắng thêm đã có trong từ điển chưa.

Bạn làm điều này bằng cách sử dụng in từ khóa như chúng ta đã thảo luận ở trên:

my_dictionary = {'name': "John Doe", 'age':34}

#I want to add an `age` key. Before I do so, I check to see if it already exists
print('age' in my_dictionary)

#output

#True

Cách cập nhật các mục trong từ điển bằng Python

Cập nhật các mục trong từ điển hoạt động theo cách tương tự như thêm các mục vào từ điển.

Khi bạn biết mình muốn cập nhật giá trị của một khóa hiện có, hãy sử dụng cú pháp chung sau mà bạn đã thấy trong phần trước:

dictionary_name[existing_key] = new_value
my_dictionary = {'name': "John Doe", 'age':34}

my_dictionary['age'] = 46

print(my_dictionary)

#output

#{'name': 'John Doe', 'age': 46}

Để cập nhật từ điển, bạn cũng có thể sử dụng công cụ tích hợp update() phương pháp.

Đọc thêm  Hướng dẫn hàm Python với các ví dụ

Phương pháp này đặc biệt hữu ích khi bạn muốn cập nhật nhiều giá trị bên trong từ điển cùng một lúc.

Giả sử bạn muốn cập nhật nameage nhập vào my_dictionaryvà thêm một khóa mới, occupation:

my_dictionary = {'name': "John Doe", 'age':34}

my_dictionary.update(name="Mike Green", age = 46, occupation = "software developer")

print(my_dictionary)

#output

#{'name': 'Mike Green', 'age': 46, 'occupation': 'software developer'}

Các update() phương thức nhận một bộ các cặp khóa-giá trị.

Các khóa đã tồn tại đã được cập nhật với các giá trị mới đã được chỉ định và một cặp khóa-giá trị mới đã được thêm vào.

Các update() cũng hữu ích khi bạn muốn thêm nội dung của từ điển này vào từ điển khác.

Giả sử bạn có một cuốn từ điển, numbersvà một từ điển thứ hai, more_numbers.

Nếu bạn muốn hợp nhất nội dung của more_numbers với nội dung của numberssử dụng update() phương pháp.

Tất cả các cặp khóa-giá trị có trong more_numbers sẽ được thêm vào cuối numbers từ điển.

numbers = {'one': 1, 'two': 2, 'three': 3}
more_numbers = {'four': 4, 'five': 5, 'six': 6}

#update 'numbers' dictionary
#you update it by adding the contents of another dictionary, 'more_numbers',
#to the end of it
numbers.update(more_numbers)

print(numbers)

#output

#{'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5, 'six': 6}

Cách xóa các mục khỏi từ điển trong Python

Một trong những cách để xóa một khóa cụ thể và giá trị liên quan của nó khỏi từ điển là sử dụng del từ khóa.

Cú pháp để làm như vậy là như sau:

del dictionary_name[key]

Ví dụ: đây là cách bạn sẽ xóa location chìa khóa từ my_information từ điển:

my_information = {'name': 'Dionysia', 'age': 28, 'location': 'Athens'}

del my_information['location']

print(my_information)

#output

#{'name': 'Dionysia', 'age': 28}

Nếu bạn muốn xóa một khóa nhưng cũng muốn lưu giá trị đã xóa đó, hãy sử dụng công cụ tích hợp sẵn pop() phương pháp.

Các pop() xóa nhưng cũng trả về khóa bạn chỉ định. Bằng cách này, bạn có thể lưu trữ giá trị đã xóa trong một biến để sử dụng hoặc truy xuất sau này.

Bạn chuyển khóa bạn muốn xóa làm đối số cho phương thức.

Đây là cú pháp chung để làm điều đó:

dictionary_name.pop(key)

Để loại bỏ location từ ví dụ trên, nhưng lần này sử dụng pop() và lưu giá trị được liên kết với khóa vào một biến, hãy làm như sau:

my_information = {'name': 'Dionysia', 'age': 28, 'location': 'Athens'}

city = my_information.pop('location')

print(my_information)
print(city)

#output

#{'name': 'Dionysia', 'age': 28}
#Athens

Nếu bạn chỉ định một khóa không tồn tại trong từ điển, bạn sẽ nhận được một KeyError thông báo lỗi:

my_information = {'name': 'Dionysia', 'age': 28, 'location': 'Athens'}

my_information.pop('occupation')

print(my_information)

#output

#line 3, in <module>
#   my_information.pop('occupation')
#KeyError: 'occupation'

Một cách giải quyết vấn đề này là truyền đối số thứ hai cho pop() phương pháp.

Bằng cách bao gồm đối số thứ hai, sẽ không có lỗi. Thay vào đó, sẽ có lỗi im lặng nếu khóa không tồn tại và từ điển sẽ không thay đổi.

my_information = {'name': 'Dionysia', 'age': 28, 'location': 'Athens'}

my_information.pop('occupation','Not found')

print(my_information)

#output

#{'name': 'Dionysia', 'age': 28, 'location': 'Athens'}

Các pop() xóa một khóa cụ thể và giá trị liên quan của nó – nhưng nếu bạn chỉ muốn xóa Cuối cùng cặp khóa-giá trị từ một từ điển?

Đối với điều đó, sử dụng tích hợp popitem() phương pháp thay thế.

Đây là cú pháp chung cho popitem() phương pháp:

dictionary_name.popitem()

Các popitem() phương thức không nhận đối số, nhưng loại bỏ và trả về cặp khóa-giá trị cuối cùng từ từ điển.

my_information = {'name': 'Dionysia', 'age': 28, 'location': 'Athens'}

popped_item = my_information.popitem()

print(my_information)
print(popped_item)

#output

#{'name': 'Dionysia', 'age': 28}
#('location', 'Athens')

Cuối cùng, nếu bạn muốn xóa tất cả các cặp khóa-giá trị khỏi từ điển, hãy sử dụng công cụ tích hợp sẵn clear() phương pháp.

my_information = {'name': 'Dionysia', 'age': 28, 'location': 'Athens'}

my_information.clear()

print(my_information)

#output

#{}

Sử dụng phương pháp này sẽ để lại cho bạn một từ điển trống.

Phần kết luận

Và bạn có nó rồi đấy! Bây giờ bạn đã biết những kiến ​​thức cơ bản về từ điển trong Python.

Tôi hy vọng bạn tìm thấy bài viết này hữu ích.

Để tìm hiểu thêm về ngôn ngữ lập trình Python, hãy xem Chứng chỉ Máy tính Khoa học với Python của freeCodeCamp.

Bạn sẽ bắt đầu từ những điều cơ bản và học theo cách tương tác và thân thiện với người mới bắt đầu. Cuối cùng, bạn cũng sẽ xây dựng năm dự án để đưa vào thực tế và giúp củng cố những gì bạn đã học được.

Cảm ơn đã đọc và mã hóa hạnh phúc!



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status