Phương thức keys[] của Python được sử dụng để lấy tất cả các khóa từ từ điển. Nó trả về một danh sách các khóa và một danh sách trống nếu từ điển trống. Phương thức này không nhận bất kỳ tham số nào. Cú pháp của phương thức được đưa ra dưới đây
Chữ ký
Thông số
Không có tham số
Trở lại
Nó trả về một danh sách các khóa. Không có nếu từ điển trống
Hãy xem một số ví dụ về phương thức keys[] để hiểu chức năng của nó
Các khóa Từ điển Python[] Phương thức Ví dụ 1
Trước tiên hãy xem một ví dụ đơn giản để lấy các khóa từ từ điển
đầu ra
dict_keys[['name', 'brand', 'price']]
Các khóa Từ điển Python[] Phương thức Ví dụ 2
đầu ra
product price is too high
Các khóa Từ điển Python[] Phương thức Ví dụ 3
Chúng ta có thể sử dụng phương thức này vào chương trình python của mình. Ở đây, chúng tôi đang sử dụng nó thành một chương trình để kiểm tra tình trạng hàng tồn kho của chúng tôi
Nếu bạn muốn sắp xếp mọi thứ theo thứ tự khác với thứ tự “tự nhiên” hoặc ngược lại, bạn có thể cung cấp một tham số bổ sung, tham số chính. Ví dụ: giả sử bạn muốn sắp xếp danh sách các số dựa trên giá trị tuyệt đối của chúng, sao cho -4 đứng sau 3? . Thay vì sắp xếp chúng theo thứ tự bảng chữ cái dựa trên các khóa, bạn có thể muốn sắp xếp chúng theo thứ tự dựa trên giá trị của chúng
Trước tiên, hãy xem một ví dụ, sau đó chúng ta sẽ đi sâu vào cách thức hoạt động của nó
Đầu tiên, hãy định nghĩa một hàm tuyệt đối nhận vào một số và trả về giá trị tuyệt đối của nó. [Trên thực tế, python cung cấp một hàm tích hợp sẵn abs
để thực hiện điều này, nhưng chúng tôi sẽ định nghĩa hàm của riêng mình, vì những lý do sẽ được giải thích trong một phút nữa. ]
Bây giờ, chúng ta có thể chuyển hàm tuyệt đối cho sorted để xác định rằng chúng ta muốn các mục được sắp xếp theo thứ tự giá trị tuyệt đối của chúng, thay vì theo thứ tự giá trị thực của chúng
Điều gì đang thực sự xảy ra ở đó? . Trước đây, tất cả các giá trị chúng tôi đã chuyển dưới dạng tham số đều khá dễ hiểu. số, chuỗi, danh sách, Booleans, từ điển. Ở đây chúng ta đã truyền một đối tượng hàm. tuyệt đối là một tên biến có giá trị là hàm. Khi chúng ta truyền đối tượng hàm đó, nó sẽ không tự động được gọi. Thay vào đó, nó chỉ được liên kết với khóa tham số chính thức của hàm được sắp xếp
Chúng tôi sẽ không xem xét mã nguồn cho hàm tích hợp được sắp xếp. Nhưng nếu làm như vậy, chúng ta sẽ tìm thấy ở đâu đó trong mã của nó một tham số có tên là khóa với giá trị mặc định là Không có. Khi một giá trị được cung cấp cho tham số đó trong một lời gọi của hàm được sắp xếp, nó phải là một hàm. Chức năng được sắp xếp thực hiện là gọi chức năng chính đó một lần cho mỗi mục trong danh sách đang được sắp xếp. Nó liên kết kết quả được trả về bởi hàm đó [hàm tuyệt đối trong trường hợp của chúng tôi] với giá trị ban đầu. Hãy nghĩ về những giá trị được liên kết đó như những ghi chú nhỏ sau đó trang trí cho các giá trị ban đầu. Giá trị 4 có ghi chú sau đó ghi 4 trên đó, nhưng giá trị -2 có ghi chú sau đó ghi 2 trên đó. Sau đó, chức năng đã sắp xếp sắp xếp lại các mục ban đầu theo thứ tự các giá trị được ghi trên các ghi chú sau đó được liên kết của chúng
Để minh họa rằng hàm tuyệt đối được gọi một lần trên mỗi mục, trong quá trình thực hiện sắp xếp, tôi đã thêm một số câu lệnh in vào mã
Lưu ý rằng mã này không bao giờ gọi hàm tuyệt đối một cách rõ ràng. Nó chuyển hàm tuyệt đối dưới dạng giá trị tham số cho hàm được sắp xếp. Bên trong hàm đã sắp xếp, mã mà chúng ta chưa thấy, hàm đó được gọi
Ghi chú
Có một chút khó hiểu là chúng tôi đang sử dụng lại từ khóa rất nhiều lần. Tên của tham số tùy chọn là key
. Chúng ta thường sẽ truyền một giá trị tham số bằng cách sử dụng cơ chế truyền tham số từ khóa. Khi chúng ta viết key=some_function
trong lệnh gọi hàm, từ khóa ở đó vì đó là tên của tham số, được chỉ định trong định nghĩa của hàm sắp xếp, không phải vì chúng ta đang sử dụng truyền tham số dựa trên từ khóa
Kiểm tra việc hiểu của bạn
1. Bạn sẽ sắp xếp danh sách sau theo chữ cái thứ hai của mỗi phần tử, từ a đến z. Tạo một hàm để sử dụng khi sắp xếp, được gọi là second_let
. Nó sẽ lấy một chuỗi làm đầu vào và trả về chữ cái thứ hai của chuỗi đó. Sau đó sắp xếp danh sách, tạo một biến tên là sorted_by_second_let
và gán danh sách đã sắp xếp cho nó. Không sử dụng lambda
2. Dưới đây, chúng tôi đã cung cấp một danh sách các chuỗi có tên là nums
. Viết một hàm có tên là last_char
nhận vào một chuỗi làm đầu vào và chỉ trả về ký tự cuối cùng của nó. Sử dụng chức năng này để sắp xếp danh sách nums
theo chữ số cuối cùng của mỗi số, từ cao nhất đến thấp nhất và lưu danh sách này thành một danh sách mới có tên là
product price is too high0
3. Một lần nữa, sắp xếp danh sách nums
dựa trên chữ số cuối cùng của mỗi số từ cao nhất đến thấp nhất. Tuy nhiên, bây giờ bạn nên làm như vậy bằng cách viết một hàm lambda. Lưu danh sách mới dưới dạng key
0