Cách thêm cùng khóa: giá trị trong từ điển python

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

________số 8_______

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ới

Nế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
1

Ghi 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ới

Hã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ác

Dướ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ển

colors_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ó

Bạn có thể thêm cùng một khóa vào từ điển Python không?

Đầu tiên, một khóa nhất định chỉ có thể xuất hiện trong từ điển một lần. Không cho phép sao chép khóa . Từ điển ánh xạ mỗi khóa thành một giá trị tương ứng, vì vậy sẽ không hợp lý khi ánh xạ một khóa cụ thể nhiều lần.

Làm cách nào để thêm giá trị khác nhau vào cùng một khóa trong từ điển Python?

Ý tưởng chung. Trong Python, nếu chúng ta muốn một từ điển có nhiều giá trị cho một khóa, chúng ta cần lưu trữ các giá trị này trong vùng chứa riêng của chúng trong từ điển. Để làm như vậy, chúng tôi cần phải sử dụng một vùng chứa làm giá trị và thêm nhiều giá trị của chúng tôi vào vùng chứa đó . Các thùng chứa phổ biến là danh sách, bộ dữ liệu và bộ.

Chúng ta có thể lặp lại các giá trị của Key trong từ điển không?

Câu trả lời ngắn gọn, không

Cách thêm khóa

Để chèn khóa/giá trị mới vào Từ điển, hãy sử dụng dấu ngoặc vuông và toán tử gán . Cùng với đó, phương thức update[] cũng có thể được sử dụng. Hãy nhớ rằng, nếu khóa đã có trong từ điển, giá trị của nó sẽ được cập nhật, nếu không, cặp mới sẽ được chèn vào.

Chủ Đề