Nhận tất cả các khóa có cùng giá trị Python

Hầu hết mọi loại giá trị đều có thể được sử dụng làm khóa từ điển trong Python. Bạn thậm chí có thể sử dụng các đối tượng tích hợp sẵn như kiểu và hàm. Tuy nhiên, có một số hạn chế mà các khóa từ điển phải tuân theo

Đầ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óa trùng lặp không được phép. 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. Nếu bạn chỉ định một khóa lần thứ hai trong quá trình tạo từ điển lần đầu, thì lần xuất hiện thứ hai sẽ ghi đè lần đầu tiên

Thứ hai, khóa từ điển phải thuộc loại không thay đổi. Ví dụ: bạn có thể sử dụng số nguyên, số float, chuỗi hoặc Boolean làm khóa từ điển. Tuy nhiên, cả danh sách và từ điển khác đều không thể đóng vai trò là khóa từ điển vì danh sách và từ điển có thể thay đổi. Mặt khác, các giá trị có thể là bất kỳ loại nào và có thể được sử dụng nhiều lần

Joshua Dougas trên

Tôi đã rất ngạc nhiên khi thông báo lỗi cho các khóa danh sách hoàn toàn không đề cập đến khả năng thay đổi

Tôi đã chơi xung quanh và thấy rằng các đối tượng có thể thay đổi thực sự hoạt động như các khóa, miễn là đối tượng có thể băm được. Chúng ta có thể tạo một danh sách hậu duệ có thể băm được bằng cách triển khai phương thức hash[] bằng cách sử dụng một số sơ đồ tùy ý

Tôi đã làm điều này bên dưới và thấy rằng các đối tượng có thể thay đổi trên thực tế hoạt động như các khóa từ điển, chỉ là việc sử dụng các khóa có thể thay đổi có thể dẫn đến kết quả không mong muốn

Ví dụ: nếu bạn thêm một mục bằng khóa có thể thay đổi và sau đó thay đổi khóa không thể đảo ngược, thì bạn có nguy cơ 'mất' giá trị được liên kết. Tôi chắc chắn rằng có một loạt các cảnh báo khác, chẳng hạn như va chạm, cũng như

Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách lấy danh sách tất cả các khóa từ từ điển python bằng nhiều phương pháp khác nhau. Chúng ta có thể lấy danh sách tất cả các khóa từ từ điển python bằng các phương pháp sau -

  • sử dụng chính tả. phương thức keys[]

  • Sử dụng danh sách [] và dict. phím [] chức năng

  • Sử dụng hiểu Danh sách

  • Sử dụng toán tử giải nén[*]

  • Sử dụng hàm append[] và vòng lặp For

Giả sử chúng tôi đã lấy một từ điển ví dụ. Chúng tôi sẽ trả về danh sách tất cả các khóa từ từ điển python bằng các phương thức khác nhau như đã chỉ định ở trên

Phương pháp 1. sử dụng chính tả. phương thức keys[]

Trong Từ điển Python, dict. keys[] phương thức cung cấp một đối tượng xem hiển thị danh sách tất cả các khóa trong từ điển theo thứ tự chèn

Thuật toán [Các bước]

Sau đây là Thuật toán/các bước cần tuân thủ để thực hiện tác vụ mong muốn -

  • Tạo một biến để lưu trữ từ điển đầu vào và thêm một số cặp khóa-giá trị ngẫu nhiên vào đó

  • Sử dụng hàm keys[] và áp dụng nó vào từ điển đầu vào để lấy danh sách tất cả các khóa của từ điển và in ra

Thí dụ

Chương trình sau trả về danh sách tất cả các khóa của từ điển bằng cách sử dụng hàm keys[] -

đầu ra

Khi thực thi, chương trình trên sẽ tạo đầu ra sau -

dict_keys[[10, 12, 14]]

Phương pháp 2. Sử dụng danh sách [] và dict. phím [] chức năng

Phương thức list[] trong Python chấp nhận bất kỳ iterable nào làm đối số và trả về một danh sách. Iterable là đối tượng trong Python có thể được lặp đi lặp lại

Thuật toán [Các bước]

Sau đây là Thuật toán/các bước cần tuân thủ để thực hiện tác vụ mong muốn -

  • Tạo một biến để lưu trữ từ điển đầu vào

  • In danh sách tất cả các khóa của một từ điển với hàm keys[] [chính tả. keys[] cung cấp một đối tượng dạng xem hiển thị danh sách tất cả các khóa trong từ điển theo thứ tự chèn] bằng cách áp dụng nó vào từ điển đầu vào và chuyển đổi kết quả thành danh sách bằng cách sử dụng hàm list[][chuyển đổi trình tự/có thể lặp lại

Thí dụ

Chương trình sau trả về danh sách tất cả các khóa của một từ điển bằng cách sử dụng các hàm list[] và keys[]

đầu ra

[10, 12, 14]

Phương pháp 3. Sử dụng hiểu Danh sách

Thuật toán [Các bước]

Sau đây là Thuật toán/các bước cần tuân thủ để thực hiện tác vụ mong muốn -

  • Tạo một biến để lưu trữ từ điển đầu vào

  • Sử dụng hàm keys[][] và áp dụng nó vào từ điển đầu vào để lấy danh sách tất cả các khóa của từ điển

  • In danh sách các khóa của từ điển bằng cách duyệt qua từng khóa trong danh sách khóa trên bằng cách sử dụng hiểu danh sách và vòng lặp for

Thí dụ

Chương trình sau đây trả về danh sách tất cả các khóa của từ điển bằng cách sử dụng tính năng hiểu Danh sách−

đầu ra

[10, 12, 14]

Phương pháp 4. Sử dụng toán tử giải nén[*]

Toán tử giải nén * hoạt động với bất kỳ đối tượng có thể lặp lại nào và vì từ điển cung cấp khóa của chúng khi được lặp lại, bạn có thể dễ dàng tạo danh sách bằng cách sử dụng nó trong danh sách theo nghĩa đen

Thuật toán [Các bước]

Sau đây là Thuật toán/các bước cần tuân thủ để thực hiện tác vụ mong muốn -

  • Tạo một biến để lưu trữ từ điển đầu vào

  • In danh sách tất cả các khóa của từ điển bằng cách sử dụng toán tử giải nén [*] và cú pháp bên dưới [Ở đây nó sẽ giải nén tất cả các khóa của từ điển và trả về dưới dạng danh sách bằng cách sử dụng * làm toán tử giải nén]

print[[*demoDictionary]]

Thí dụ

Chương trình sau trả về danh sách tất cả các khóa của từ điển bằng cách sử dụng toán tử giải nén[*] −

đầu ra

[10, 12, 14]

Phương pháp 5. Sử dụng hàm append[] và vòng lặp For

Thuật toán [Các bước]

Sau đây là Thuật toán/các bước cần tuân thủ để thực hiện tác vụ mong muốn -

  • Tạo một biến để lưu trữ từ điển đầu vào

  • Tạo một danh sách trống để lưu trữ tất cả các khóa của một từ điển đầu vào

  • Sử dụng vòng lặp for để duyệt qua tất cả các khóa của từ điển bằng hàm keys[]

  • Nối từng khóa của từ điển vào danh sách bằng hàm append[] [thêm phần tử vào cuối danh sách] bằng cách chuyển khóa tương ứng làm đối số cho nó

  • In danh sách tất cả các khóa của từ điển

Thí dụ

Chương trình sau trả về danh sách tất cả các khóa của từ điển bằng cách sử dụng hàm append[] & vòng lặp For −

đầu ra

Khi thực thi, chương trình trên sẽ tạo đầu ra sau -

[10, 12, 14]

Phần kết luận

Bài viết này hướng dẫn chúng ta cách sử dụng hàm keys[] để lấy toàn bộ khóa của từ điển cũng như cách sử dụng hàm list[] để biến các khóa thành danh sách. Ngoài ra, chúng ta đã học cách sử dụng tính năng hiểu danh sách và vòng lặp for trong cùng một đoạn mã để chuyển đổi các khóa từ từ điển được phương thức keys[] trả về thành danh sách. Cuối cùng, chúng ta đã học cách thêm các phần tử vào danh sách bằng cách sử dụng hàm append[] [Ở đây chúng ta đã thêm các khóa vào danh sách]

Nhiều khóa có thể có cùng giá trị Python không?

Trả lời. Không, mỗi khóa trong từ điển phải là duy nhất. Bạn không thể có hai khóa có cùng giá trị . Cố gắng sử dụng lại cùng một khóa sẽ chỉ ghi đè lên giá trị được lưu trữ trước đó.

Làm cách nào để lấy khóa từ giá trị cụ thể trong Python?

Phương pháp 1. Nhận khóa theo giá trị bằng cách sử dụng khả năng hiểu danh sách . Việc hiểu danh sách bao gồm các dấu ngoặc chứa biểu thức, được thực thi cho từng phần tử cùng với vòng lặp for để lặp qua từng phần tử trong danh sách Python để lấy khóa từ một giá trị trong từ điển.

Nhiều khóa có thể có cùng giá trị không?

Nếu bạn muốn liên kết một khóa với nhiều giá trị, hãy ánh xạ từng khóa vào một danh sách các giá trị. Nếu bạn muốn liên kết nhiều khóa với cùng một giá trị, chỉ cần liên kết từng khóa đó với cùng một giá trị. Một bảng băm có thể dễ dàng xử lý hoạt động này

Bạn có thể có các khóa giống hệt nhau trong từ điển Python không?

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. Nếu bạn chỉ định một khóa lần thứ hai trong quá trình tạo từ điển lần đầu, thì lần xuất hiện thứ hai sẽ ghi đè lần đầu tiên.

Chủ Đề