Câu trả lời thẳng là KHÔNG. Bạn không thể có các khóa trùng lặp trong từ điển bằng Python. Nhưng chúng ta có thể có tác dụng tương tự như giữ các khóa trùng lặp trong từ điển. Chúng ta cần hiểu lý do đằng sau câu hỏi này và cách chúng ta có thể đạt được các khóa trùng lặp trong Python
Tại sao bạn không thể có các khóa trùng lặp trong từ điển?
Bạn không thể có các khóa trùng lặp trong Python, nhưng bạn có thể có nhiều giá trị được liên kết với một khóa trong Python. Nếu bạn muốn giữ các khóa trùng lặp trong từ điển, thì bạn có hai hoặc nhiều giá trị khác nhau mà bạn muốn liên kết với cùng một khóa trong từ điển. Từ điển không thể có các khóa giống nhau, nhưng chúng ta có thể đạt được hiệu quả tương tự bằng cách giữ nhiều giá trị cho một khóa trong từ điển
Hãy hiểu với một ví dụ,
Giả sử chúng ta có một từ điển tên và số điện thoại,
quảng cáo
# Dictionary of names and phone numbers phone_details = { 'Mathew': 212323, 'Ritika': 334455, 'John' : 345323 }
Hiện tại, mỗi tên [khóa] đều có một số điện thoại được liên kết với nó. Nhưng giả sử “John” có thêm hai số điện thoại và chúng tôi cũng muốn thêm những số đó vào từ điển. Vì Khóa 'John' đã tồn tại trong từ điển, vì vậy nếu chúng tôi thử thêm hai cặp khóa-giá trị khác có cùng khóa như thế này,
phone_details['John'] = 111223 phone_details['John'] = 333444
HOẶC LÀ
phone_details.update[{ 'John' : 111223}] phone_details.update[{ 'John' : 333444}]
Nó sẽ cập nhật giá trị của khóa hiện có ‘John’ i. e
Mathew - 212323 Ritika - 334455 John - 333444
Để tránh loại sự cố này, chúng ta có thể gán nhiều giá trị cho một khóa. Như thế này,
Mathew - 212323 Ritika - 334455 John - [345323, 111223, 333444]
Thêm nhiều giá trị cho một khóa trong từ điển bằng Python
Thay vì chèn một khóa trùng lặp, chúng ta có thể thay đổi loại giá trị cho danh sách và gán thêm giá trị cho nó
Hãy xem một ví dụ,
def add_value[dict_obj, key, value]: ''' Adds a key-value pair to the dictionary. If the key already exists in the dictionary, it will associate multiple values with that key instead of overwritting its value''' if key not in dict_obj: dict_obj[key] = value elif isinstance[dict_obj[key], list]: dict_obj[key].append[value] else: dict_obj[key] = [dict_obj[key], value] # Dictionary of names and phone numbers phone_details = { 'Mathew': 212323, 'Ritika': 334455, 'John' : 345323 } # Append a value to the existing key add_value[phone_details, 'John', 111223] # Append a value to the existing key add_value[phone_details, 'John', 333444] for key, value in phone_details.items[]: print[key, ' - ', value]
đầu ra
Mathew - 212323 Ritika - 334455 John - [345323, 111223, 333444]
Ở đây, chúng tôi đã tạo một hàm add_value[] để thêm một cặp khóa-giá trị vào từ điển. Nếu khóa đã tồn tại trong từ điển, nó sẽ liên kết nhiều giá trị với khóa đó thay vì ghi đè lên giá trị của nó. Nó tuân theo logic này
- Nếu khóa không tồn tại, hãy thêm cặp khóa-giá trị
- Nếu khóa tồn tại trong từ điển và loại giá trị không có trong danh sách. Sau đó tạo một danh sách tạm thời và thêm các giá trị cũ và mới vào đó. Sau đó gán đối tượng danh sách làm giá trị cho khóa trong từ điển
- Nếu khóa tồn tại trong từ điển và loại giá trị là một danh sách. Sau đó thêm giá trị mới vào danh sách
Vì vậy, đây là cách chúng ta có thể có các khóa trùng lặp trong từ điển, tôi. e. , bằng cách thêm nhiều giá trị cho cùng một khóa trong từ điển bằng Python
Từ điển trong Python là tập hợp các mục lưu trữ dữ liệu dưới dạng cặp khóa-giá trị. Chúng tôi có thể truy cập và thao tác các mục từ điển dựa trên khóa của chúng. Từ điển có thể thay đổi và cho phép chúng tôi thêm các mục mới vào chúng
Cách nhanh nhất để thêm một mục vào từ điển là sử dụng tham chiếu chỉ mục của từ điển bằng khóa mới và gán giá trị. Ví dụ: chúng tôi thêm một cặp khóa-giá trị mới như thế này
snacks['chocolate'] = 5
Python cũng cho phép thêm nhiều mục vào từ điển. Trong hướng dẫn này, chúng ta sẽ xem cách thêm khóa vào từ điển trong Python
Thêm khóa vào từ điển Python
Có nhiều cách để thêm cặp khóa-giá trị mới vào từ điển hiện có. Chúng ta hãy xem một vài cách phổ biến để làm như vậy
Thêm khóa có giá trị
Chúng ta có thể thêm một khóa mới vào từ điển bằng cách gán giá trị cho nó. Nếu khóa đã có, nó sẽ ghi đè lên giá trị mà nó trỏ tới. Khóa phải được viết bằng ký hiệu chỉ số cho từ điển như thế này
Cặp khóa-giá trị này sẽ được thêm vào từ điển. Nếu bạn đang sử dụng Python 3. 6 trở lên, nó sẽ được thêm vào làm mục cuối cùng của từ điển
Hãy tạo một từ điển và sau đó thêm một cặp khóa-giá trị mới bằng phương pháp này
Điều này sẽ dẫn đến
{1: 1, 2: 4, 3: 9, 4: 16}
Thêm khóa vào từ điển không có giá trị
Nếu bạn chỉ muốn thêm một khóa, không có giá trị, bạn chỉ cần đặt None
thay vì giá trị, bằng bất kỳ phương pháp nào được đề cập trong tài liệu này
Kết quả này trong
{1: 1, 2: 4, 3: 9, 'x': None}
Trong Python, chúng ta có thể thêm nhiều cặp khóa-giá trị vào từ điển hiện có. Điều này đạt được bằng cách sử dụng phương pháp update[]
. Phương thức này lấy một đối số kiểu dict
hoặc bất kỳ lần lặp nào có độ dài bằng hai - như
my_dictionary[new_key] = new_value
0 và cập nhật từ điển với các cặp khóa-giá trị mớiNếu khóa đã có trong từ điển, nó sẽ được ghi đè bằng giá trị mới
Các khóa cũng có thể được truyền dưới dạng đối số từ khóa cho phương thức này với các giá trị tương ứng của chúng, chẳng hạn như
my_dictionary[new_key] = new_value
1Ghi chú. Đây được cho là phương pháp phổ biến nhất để thêm khóa và giá trị mới vào từ điển
Hãy sử dụng phương pháp update[]
để thêm nhiều cặp khóa-giá trị vào từ điển
Chạy mã này sẽ tạo ra đầu ra sau
update by passing dictionary
{'red': 1, 'orange': 2, 'yellow': 3}
update by passing iterables
{'red': 1, 'orange': 2, 'yellow': 3, 'green': 4, 'blue': 5}
update using keyword arguments
{'red': 1, 'orange': 2, 'yellow': 3, 'green': 4, 'blue': 5, 'indigo': 6, 'violet': 7}
Sử dụng toán tử hợp nhất [Python 3. 9+]
Từ phiên bản Python 3. 9, Các toán tử Hợp nhất [
my_dictionary[new_key] = new_value
3] và Cập nhật [my_dictionary[new_key] = new_value
4] đã được thêm vào lớp dict
tích hợpĐây là những phương pháp rất thuận tiện để thêm nhiều cặp khóa-giá trị vào từ điển. Toán tử Hợp nhất [
my_dictionary[new_key] = new_value
3] tạo một từ điển mới với các khóa và giá trị của cả hai từ điển đã cho. Sau đó chúng ta có thể gán kết quả này cho một từ điển mớiHãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó
Trong khi toán tử Update[
my_dictionary[new_key] = new_value
4], thêm các cặp khóa-giá trị của từ điển thứ hai vào từ điển thứ nhất. Vì vậy, từ điển hiện tại được cập nhật với nhiều cặp khóa-giá trị từ một từ điển khácDưới đây là ví dụ về việc sử dụng các toán tử Hợp nhất[
my_dictionary[new_key] = new_value
3] và Cập nhật[my_dictionary[new_key] = new_value
4] để thêm khóa mới vào từ điểncolors_set1 = {‘red’: 1, 'orange’: 2, 'yellow': 3}
colors_set2 = {'green': 4, 'blue': 5, 'indigo': 6, 'violet': 7}
# Merge operator
rainbow = colors_set1 | colors_set2
print["using merge:", rainbow]
# Update operator
colors_set1 |= colors_set2
print["using update:", colors_set1]
Mã này sẽ tạo đầu ra sau trên Python[3. 9+] thông dịch viên
using merge: {'red': 1, 'orange': 2, 'yellow': 3, 'green': 4, 'blue': 5, 'indigo': 6, 'violet': 7}
using update: {'red': 1, 'orange': 2, 'yellow': 3, 'green': 4, 'blue': 5, 'indigo': 6, 'violet': 7}
Phần kết luận
Trong hướng dẫn này, chúng ta đã học cách thêm khóa mới vào từ điển. Trước tiên, chúng tôi đã thêm cặp khóa-giá trị bằng cách sử dụng ký hiệu chỉ số dưới - chúng tôi đã thêm khóa vào từ điển bằng cách gán giá trị cho nó. Sau đó, chúng tôi đã xem xét phương pháp update[]
để thêm nhiều cặp khóa-giá trị vào từ điển. Chúng tôi cũng đã sử dụng phương pháp update[]
với các tham số của loại từ điển, bộ dữ liệu và đối số từ khóa. Cuối cùng, chúng tôi đã thăm dò các toán tử Hợp nhất và Cập nhật có sẵn từ Python phiên bản 3. 9 trở đi
Phương pháp từ điển update[]
chứng tỏ là cách phổ biến nhất để thêm khóa mới vào từ điển hiện có