Làm thế nào để bạn lật một khóa và giá trị trong python?

Có những trường hợp bạn có thể muốn đảo ngược cặp khóa và giá trị trong python để bạn có thể thực hiện một số thao tác bằng cách sử dụng các giá trị duy nhất trong từ điển gốc

Chẳng hạn, nếu bạn có từ điển dưới đây

contact = {"joe" : "contact@company.com", "john": "john@company.com"}

bạn có thể đảo ngược nó bằng cách

contact = {val : key for key, val in contact.items[]} print[contact]

Bạn sẽ thấy đầu ra bên dưới

{'contact@company.com': 'joe', 'john@company.com': 'john'}

Nhưng đối với từ điển trên, nếu nhiều tên dùng chung địa chỉ email thì chỉ giữ lại một tên. e. g.

contact = {"joe" : "contact@company.com", "jane" : "contact@company.com", "john": "john@company.com"} contact = {val : key for key, val in contact.items[]}

Đầu ra của từ điển liên hệ sẽ là

{'contact@company.com': 'jane', 'john@company.com': 'john'}

vậy làm cách nào để giữ tất cả các khóa có cùng giá trị sau khi đảo ngược nó?

Bạn sẽ cần sử dụng danh sách hoặc bộ để thu thập tất cả các khóa nếu giá trị giống nhau, e. g

email_contact = {} for key, val in contact.items[]: email_contact.setdefault[val, []].append[key]

[vui lòng tham khảo bài viết này về phương thức setdefault]

Và bạn sẽ thấy đầu ra bên dưới cho từ điển mới email_contact

{'contact@company.com': ['joe', 'jane'], 'john@company.com': ['john']}

Đó chính xác là những gì chúng tôi muốn. Bây giờ chúng ta sẽ có thể nói “xin chào” với cả Joe và Jane khi gửi email tới contact@company. com không sót tên nào

Các đối tượng từ điển Python là phương tiện thuận tiện để lưu trữ các cặp khóa-giá trị. Dicts cung cấp các phương thức thuận tiện để truy cập dữ liệu nhưng để các nhà phát triển tự vận hành. Ví dụ: để hoán đổi vị trí của hai giá trị trong từ điển python, người ta phải nghĩ ra một cách tiếp cận tùy chỉnh - không có phương thức 'hoán đổi'

Mục lục

Đây không phải là nhiệm vụ khó và có thể được tiếp cận giống như bất kỳ logic trao đổi cơ bản nào khác được triển khai trên nhiều ngôn ngữ. Tuy nhiên, Python cung cấp cho phép một người đơn giản hóa cú pháp hoán đổi — bao gồm giữa các giá trị trong đối tượng dict. Hướng dẫn nhanh này sẽ xem xét một số cách tiếp cận và trường hợp sử dụng để hoán đổi giá trị trong Python dict

TL;DR

Thứ tự đánh giá của Python cho phép cú pháp đơn giản hóa để thực hiện hoán đổi. Các mục từ điển có thể có các giá trị được hoán đổi bằng cách sử dụng cùng một cú pháp, sao cho các khóa về mặt khái niệm giống như các biến. Mã ví dụ này cung cấp một cuộc biểu tình

# define key value pairs
d = {"a": 1, "b": 2, "c": 3}

# swap values using Pythonic syntax
d["a"], d["b"] = d["b"], d["a"]

# result
{'a': 2, 'b': 1, 'c': 3}

Giới thiệu nhanh. Khái niệm cơ bản về hoán đổi

Hoán đổi là một khái niệm cơ bản trong khoa học máy tính. Cách một người chọn trao đổi giá trị được gán cho một biến với giá trị được gán cho giây là một chuỗi logic được nhiều chương trình tiếp cận. Thật dễ dàng - nhưng ban đầu có thể khiến những người mới lập trình bối rối. Xem xét tình huống sau

________số 8_______

Ở đây chúng ta có hai biến; . Mỗi cái có một giá trị số nguyên duy nhất được gán. Ý định của chúng tôi là thay đổi chúng sao cho

# The first variable
variable_one = 1

# The second variable
variable_two = 2
2 có giá trị kết quả là
# The first variable
variable_one = 1

# The second variable
variable_two = 2
3 và
# The first variable
variable_one = 1

# The second variable
variable_two = 2
4 có giá trị kết quả là
# The first variable
variable_one = 1

# The second variable
variable_two = 2
5. Chúng ta có thể dễ dàng gán giá trị của
# The first variable
variable_one = 1

# The second variable
variable_two = 2
4 cho
# The first variable
variable_one = 1

# The second variable
variable_two = 2
2 nhưng đó là lúc rắc rối bắt đầu. Hãy xem xét những điều sau đây

# swap first value
variable_1 = variable_2

# swap second value
variable_2 = variable_1 # 

Chủ Đề