Cách nhập nhiều giá trị trong từ điển trong python
Khi cần tạo một từ điển trong đó các khóa có nhiều đầu vào, một từ điển trống có thể được tạo và giá trị cho một khóa cụ thể có thể được chỉ định Show Dưới đây là minh họa tương tự - Ví dụBản thử trực tiếp my_dict = {} a, b, c = 15, 26, 38 my_dict[a, b, c] = a + b - c a, b, c = 5, 4, 11 my_dict[a, b, c] = a + b - c print("The dictionary is :") print(my_dict) đầu raThe dictionary is : {(15, 26, 38): 3, (5, 4, 11): -2} Giải trình
Về bản chất, từ điển là ánh xạ một-một, nhưng không khó để biến nó thành một-nhiều—nói cách khác, để tạo một ánh xạ khóa thành nhiều giá trị. Có hai cách tiếp cận khả thi, tùy thuộc vào cách bạn muốn xử lý các bản sao trong tập giá trị cho khóa. Cách tiếp cận sau đây cho phép sao chép như vậy d1 = {} d1.setdefault(key, []).append(value) trong khi phương pháp này tự động loại bỏ trùng lặp d2 = {} d2.setdefault(key, {})[value] = 1 Một từ điển bình thường thực hiện ánh xạ đơn giản của một khóa tới một giá trị. Công thức này cho thấy hai cách dễ dàng, hiệu quả để đạt được ánh xạ của từng khóa tới nhiều giá trị. Ngữ nghĩa của hai cách tiếp cận hơi khác nhau nhưng quan trọng là cách chúng xử lý sự trùng lặp. Mỗi cách tiếp cận đều dựa vào phương thức d2 = {} d2.setdefault(key, {})[value] = 17 của từ điển để khởi tạo mục nhập cho một khóa trong từ điển, nếu cần và trong mọi trường hợp để trả lại mục nhập đã nói Tất nhiên, bạn cần có khả năng làm nhiều việc hơn là chỉ thêm giá trị cho một khóa. Với cách tiếp cận đầu tiên, cho phép sao chép, đây là cách truy xuất danh sách các giá trị cho một khóa list_of_values = d1[key] Đây là cách xóa một giá trị cho một khóa, nếu bạn không phiền để lại danh sách trống dưới dạng các mục của d2 = {} d2.setdefault(key, {})[value] = 18 khi giá trị cuối cùng của khóa bị xóa d1[key].remove(value) Mặc dù danh sách trống nhưng vẫn dễ dàng kiểm tra sự tồn tại của khóa có ít nhất một giá trị Điều này trả về d2 = {} d2.setdefault(key, {})[value] = 19 hoặc một danh sách, có thể trống. Trong hầu hết các trường hợp, việc sử dụng một hàm luôn trả về một danh sách (có thể là một danh sách trống) sẽ dễ dàng hơn, chẳng hạn như The dictionary is : {(15, 26, 38): 3, (5, 4, 11): -2}0 Bạn có thể sử dụng một trong hai chức năng này trong một câu lệnh. Ví dụ The dictionary is : {(15, 26, 38): 3, (5, 4, 11): -2}1 Tuy nhiên, list_of_values = d1[key]0 thường tiện dụng hơn. Ví dụ: bạn có thể sử dụng nó để kiểm tra xem list_of_values = d1[key]1 có nằm trong số các giá trị của list_of_values = d1[key]2 không The dictionary is : {(15, 26, 38): 3, (5, 4, 11): -2}5 Tiện ích bổ sung này xuất phát từ việc list_of_values = d1[key]0 luôn trả về một danh sách, thay vì đôi khi là một danh sách và đôi khi là d2 = {} d2.setdefault(key, {})[value] = 19 Cách tiếp cận đầu tiên cho phép mỗi giá trị xuất hiện nhiều lần cho mỗi khóa đã cho. Ví dụ The dictionary is : {(15, 26, 38): 3, (5, 4, 11): -2}8 Bây giờ list_of_values = d1[key]5 là list_of_values = d1[key]6. Nếu bây giờ chúng ta thực hiện d1 = {} d1.setdefault(key, []).append(value)1 kiểm tra sau vẫn hài lòng d2 = {} d2.setdefault(key, {})[value] = 10 list_of_values = d1[key]7 đã có mặt hai lần và chúng tôi chỉ xóa nó một lần. (Thử nghiệm cho list_of_values = d1[key]7 với list_of_values = d1[key]9 sẽ tổng quát hơn, mặc dù tương đương trong trường hợp này. ) Cách tiếp cận thứ hai, loại bỏ trùng lặp, yêu cầu các thành ngữ khá giống nhau. Đây là cách truy xuất danh sách các giá trị cho một khóa d2 = {} d2.setdefault(key, {})[value] = 11 Dưới đây là cách xóa cặp khóa/giá trị, để lại các từ điển trống dưới dạng các mục của d1[key].remove(value)0 khi giá trị cuối cùng của khóa bị xóa d2 = {} d2.setdefault(key, {})[value] = 12 Hàm d1[key].remove(value)1 được hiển thị trước đó cũng hoạt động cho cách tiếp cận thứ hai và bạn cũng có các lựa chọn thay thế tương tự, chẳng hạn như d2 = {} d2.setdefault(key, {})[value] = 13 Cách tiếp cận thứ hai không cho phép trùng lặp. Ví dụ d2 = {} d2.setdefault(key, {})[value] = 14 Bây giờ list_of_values = d1[key]5 là d1[key].remove(value)3. Bây giờ, nếu chúng ta thực hiện d2 = {} d2.setdefault(key, {})[value] = 15 bài kiểm tra sau đây không thỏa mãn d2 = {} d2.setdefault(key, {})[value] = 10 list_of_values = d1[key]7 đã có mặt, nhưng chúng tôi vừa xóa nó Công thức này tập trung vào cách viết mã chức năng thô, nhưng nếu bạn muốn sử dụng chức năng này một cách có hệ thống, bạn sẽ muốn gói gọn nó trong một lớp. Vì mục đích đó, bạn cần đưa ra một số quyết định thiết kế mà công thức nêu bật. Bạn có muốn một giá trị nằm trong mục nhập cho một khóa nhiều lần không? Bạn có thể có 3 mục trong từ điển python không?Bạn có thể thêm bao nhiêu mục tùy thích .
Làm cách nào để lấy nhiều giá trị từ từ điển Python?Để lấy nhiều giá trị từ một từ điển. . Sử dụng vòng lặp for để lặp qua bộ sưu tập khóa sử dụng danh sách. append() để thêm giá trị của mỗi khóa vào danh sách Danh sách mới sẽ chỉ chứa các giá trị của các khóa được chỉ định Làm cách nào để thêm tất cả các giá trị trong từ điển Python?Việc lấy tổng các giá trị của một từ điển python khá dễ dàng. Trước tiên, bạn có thể lấy các giá trị trong danh sách bằng lệnh. giá trị(). Sau đó, bạn có thể gọi phương thức tổng để lấy tổng của các giá trị này . |