Bạn có thể hoán đổi khóa và giá trị trong từ điển với khả năng hiểu từ điển và phương thức
dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
2- Tạo một từ điển trong Python [{}, dict[], dict combs]
- Lặp lại từ điển [khóa và giá trị] với vòng lặp for trong Python
d = {'key1': 'val1', 'key2': 'val2', 'key3': 'val3'}
d_swap = {v: k for k, v in d.items[]}
print[d_swap]
# {'val1': 'key1', 'val2': 'key2', 'val3': 'key3'}
nguồn. dict_swap_key_value. py
Hàm số
def get_swap_dict[d]:
return {v: k for k, v in d.items[]}
d_swap = get_swap_dict[d]
print[d_swap]
# {'val1': 'key1', 'val2': 'key2', 'val3': 'key3'}
nguồn. dict_swap_key_value. py
Lưu ý về các giá trị chung
Tất cả các khóa trong từ điển phải khác nhau, nhưng các giá trị có thể giống nhau
Khi các khóa và giá trị của từ điển có giá trị chung được hoán đổi, chỉ một giá trị chung còn lại làm khóa
Đôi khi, trong khi làm việc với từ điển, chúng ta có thể gặp sự cố cần đảo ngược thứ tự từ điển. Đây là một vấn đề khá phổ biến và có thể có ứng dụng trong nhiều lĩnh vực bao gồm lập trình hàng ngày và phát triển web. Hãy thảo luận về một số cách mà vấn đề này có thể được giải quyết
Phương pháp #1. Sử dụng
dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
3Phương pháp này dành cho các phiên bản Python cũ hơn. Các phiên bản cũ không giữ thứ tự trong từ điển, do đó phải chuyển đổi sang OrderedDict để thực hiện tác vụ này.
dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
4dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
5dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
6dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
7 dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
8____49 dct = {
"Animal": "Dog",
"Fruit": "Pear",
"Vegetable": "Cabbage",
"Tree": "Maple",
"Flower": "Daisy"
}
print[dct.items[]]
0dct = {
"Animal": "Dog",
"Fruit": "Pear",
"Vegetable": "Cabbage",
"Tree": "Maple",
"Flower": "Daisy"
}
print[dct.items[]]
1dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
30dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
31dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
32 dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
33dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
34 dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
35dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
36dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
37dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
38 dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
35dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
40dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
37dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
42 dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
35_______444dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
45 Đảo ngược từ điển khác với đảo ngược danh sách, nó có nghĩa là đảo ngược hoặc chuyển đổi các thành phần khóa và giá trị của từ điển, về cơ bản là hoán đổi chúng cho bất kỳ mục đích nào mà nhà phát triển có thể sử dụng cho
Sử dụng dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
3 để đảo ngược một từ điển trong Python
dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
Từ điển Python có một hàm tích hợp có tên là
dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
3 trả về một đối tượng có thể lặp lại sẽ hiển thị các cặp khóa-giá trị của từ điển ở dạng một bộVí dụ: khai báo một từ điển gồm các danh mục ngẫu nhiên và in nó ra bằng cách sử dụng
dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
3dct = {
"Animal": "Dog",
"Fruit": "Pear",
"Vegetable": "Cabbage",
"Tree": "Maple",
"Flower": "Daisy"
}
print[dct.items[]]
đầu ra
dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
In một từ điển bằng cách sử dụng
dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
3 sẽ xuất ra một danh sách các giá trị bộ lặp có thể lặp lại mà chúng ta có thể thao tác bằng cách sử dụng vòng lặp dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
7 cho từ điểnĐảo ngược các cặp khóa-giá trị bằng cách lặp lại kết quả của
dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
3 và chuyển đổi khóa và giá trịdef get_swap_dict[d]:
return {v: k for k, v in d.items[]}
d_swap = get_swap_dict[d]
print[d_swap]
# {'val1': 'key1', 'val2': 'key2', 'val3': 'key3'}
0dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
9 và def get_swap_dict[d]:
return {v: k for k, v in d.items[]}
d_swap = get_swap_dict[d]
print[d_swap]
# {'val1': 'key1', 'val2': 'key2', 'val3': 'key3'}
00 trong vòng lặp dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
7 lần lượt là key và value. def get_swap_dict[d]:
return {v: k for k, v in d.items[]}
d_swap = get_swap_dict[d]
print[d_swap]
# {'val1': 'key1', 'val2': 'key2', 'val3': 'key3'}
02 là phần giữ chỗ cho khóa và giá trị trong mỗi lần lặp lại, mặc dù chúng tôi đặt giá trị trước đó def get_swap_dict[d]:
return {v: k for k, v in d.items[]}
d_swap = get_swap_dict[d]
print[d_swap]
# {'val1': 'key1', 'val2': 'key2', 'val3': 'key3'}
00 làm khóa mới và khóa trước đó dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
9 làm giá trị mớiđầu ra
def get_swap_dict[d]:
return {v: k for k, v in d.items[]}
d_swap = get_swap_dict[d]
print[d_swap]
# {'val1': 'key1', 'val2': 'key2', 'val3': 'key3'}
7Các phần tử khóa và giá trị hiện được đảo ngược trong đầu ra
Các khóa có giá trị giống nhau trong từ điển đảo ngược
Một tình huống ví dụ khác khi đảo ngược từ điển là nếu có nhiều khóa hoặc giá trị có cùng giá trị. Đây là một kịch bản có nhiều khả năng đảo ngược từ điển
Ví dụ: từ điển về những con vật yêu thích của mọi người
def get_swap_dict[d]:
return {v: k for k, v in d.items[]}
d_swap = get_swap_dict[d]
print[d_swap]
# {'val1': 'key1', 'val2': 'key2', 'val3': 'key3'}
8Nếu từ điển được đảo ngược bằng mã trên, đầu ra sẽ không như bạn mong đợi
def get_swap_dict[d]:
return {v: k for k, v in d.items[]}
d_swap = get_swap_dict[d]
print[d_swap]
# {'val1': 'key1', 'val2': 'key2', 'val3': 'key3'}
9đầu ra
dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
0Ở đây, thiếu 2 thành phần trong từ điển gốc vì mỗi khi một khóa hoặc một giá trị lặp lại trong vòng lặp, bản ghi hiện có sẽ bị ghi đè
Từ điển chứa 3 người có cặp giá trị
def get_swap_dict[d]:
return {v: k for k, v in d.items[]}
d_swap = get_swap_dict[d]
print[d_swap]
# {'val1': 'key1', 'val2': 'key2', 'val3': 'key3'}
05 nhưng chỉ có def get_swap_dict[d]:
return {v: k for k, v in d.items[]}
d_swap = get_swap_dict[d]
print[d_swap]
# {'val1': 'key1', 'val2': 'key2', 'val3': 'key3'}
06 được sao chép vì đây là bản ghi cuối cùng có giá trị def get_swap_dict[d]:
return {v: k for k, v in d.items[]}
d_swap = get_swap_dict[d]
print[d_swap]
# {'val1': 'key1', 'val2': 'key2', 'val3': 'key3'}
05 và đã ghi đè lên 2 mục từ điển khácĐể giải quyết vấn đề này, chúng tôi sẽ phải lưu trữ các giá trị trong một danh sách để chúng được gán cho một khóa duy nhất
Mã ví dụ hoàn chỉnh
dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
4Sử dụng def get_swap_dict[d]:
return {v: k for k, v in d.items[]}
d_swap = get_swap_dict[d]
print[d_swap]
# {'val1': 'key1', 'val2': 'key2', 'val3': 'key3'}
08 để đảo ngược một từ điển trong Python
def get_swap_dict[d]:
return {v: k for k, v in d.items[]}
d_swap = get_swap_dict[d]
print[d_swap]
# {'val1': 'key1', 'val2': 'key2', 'val3': 'key3'}
Mô-đun
def get_swap_dict[d]:
return {v: k for k, v in d.items[]}
d_swap = get_swap_dict[d]
print[d_swap]
# {'val1': 'key1', 'val2': 'key2', 'val3': 'key3'}
09 có chức năng def get_swap_dict[d]:
return {v: k for k, v in d.items[]}
d_swap = get_swap_dict[d]
print[d_swap]
# {'val1': 'key1', 'val2': 'key2', 'val3': 'key3'}
70 có thể thao tác các giá trị trong từ điển bằng Pythondef get_swap_dict[d]:
return {v: k for k, v in d.items[]}
d_swap = get_swap_dict[d]
print[d_swap]
# {'val1': 'key1', 'val2': 'key2', 'val3': 'key3'}
70 chủ yếu được sử dụng để tạo các giá trị mặc định của các khóa không tồn tại. Nếu bạn truy cập một khóa không tồn tại, nó có thể khai báo một giá trị mặc định cho nó, ngay cả khi nó không tồn tạiHàm này hữu ích cho trường hợp của chúng tôi vì chúng tôi muốn khởi tạo một từ điển mới với các giá trị thuộc kiểu dữ liệu danh sách
Sử dụng cùng một ví dụ
def get_swap_dict[d]:
return {v: k for k, v in d.items[]}
d_swap = get_swap_dict[d]
print[d_swap]
# {'val1': 'key1', 'val2': 'key2', 'val3': 'key3'}
72, đảo ngược từ điển và chuyển đổi các giá trị thành danh sáchĐầu tiên, khởi tạo từ điển mới bằng cách sử dụng
def get_swap_dict[d]:
return {v: k for k, v in d.items[]}
d_swap = get_swap_dict[d]
print[d_swap]
# {'val1': 'key1', 'val2': 'key2', 'val3': 'key3'}
70dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
1Tiếp theo, sử dụng khả năng hiểu danh sách để đảo ngược và lưu trữ các giá trị đảo ngược vào từ điển mới
dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
2Cuối cùng, vì
def get_swap_dict[d]:
return {v: k for k, v in d.items[]}
d_swap = get_swap_dict[d]
print[d_swap]
# {'val1': 'key1', 'val2': 'key2', 'val3': 'key3'}
70 tạo ra một loại lớp con của từ điển, hãy chuyển đổi lại nó thành loại từ điển cơ sở bằng cách gói nó trong def get_swap_dict[d]:
return {v: k for k, v in d.items[]}
d_swap = get_swap_dict[d]
print[d_swap]
# {'val1': 'key1', 'val2': 'key2', 'val3': 'key3'}
75dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
0đầu ra
dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
1John, Jenny và James hiện nằm trong cùng một danh sách với khóa
def get_swap_dict[d]:
return {v: k for k, v in d.items[]}
d_swap = get_swap_dict[d]
print[d_swap]
# {'val1': 'key1', 'val2': 'key2', 'val3': 'key3'}
05 thay vì các phần tử khác bị ghi đè bởi phần tử cuối cùng có giá trị def get_swap_dict[d]:
return {v: k for k, v in d.items[]}
d_swap = get_swap_dict[d]
print[d_swap]
# {'val1': 'key1', 'val2': 'key2', 'val3': 'key3'}
05Mã ví dụ hoàn chỉnh
dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
2Tóm lại, sử dụng
dict_items[[['Animal', 'Dog'], ['Fruit', 'Pear'], ['Vegetable', 'Cabbage'], ['Tree', 'Maple'], ['Flower', 'Daisy']]]
3 để lặp qua từ điển và đảo ngược các khóa và giá trị. Nếu trong bất kỳ trường hợp nào, tập dữ liệu của bạn có khả năng trùng lặp, thì hãy đảm bảo chuyển đổi các giá trị thành danh sách bằng cách sử dụng def get_swap_dict[d]:
return {v: k for k, v in d.items[]}
d_swap = get_swap_dict[d]
print[d_swap]
# {'val1': 'key1', 'val2': 'key2', 'val3': 'key3'}
70 và thao tác nó theo cách mà các giá trị của từ điển sẽ thêm vào danh sách thay vì thay thế các giá trị hiện có