Chỉ để có được yếu tố cuối cùng, Show
Chuyển 0 cho ký hiệu đăng ký:
Giải trìnhChỉ mục và lát cắt có thể lấy các số nguyên âm làm đối số. Tôi đã sửa đổi một ví dụ từ tài liệu để chỉ ra mục nào trong chuỗi mỗi tài liệu tham khảo chỉ mục, trong trường hợp này, trong chuỗi 1, 0 tham chiếu phần tử cuối cùng, ký tự, 3:
Nhiệm vụ thông qua việc giải nén có thể giải quyết đượcPhương pháp này có thể thành hiện thực một cách không cần thiết danh sách thứ hai cho các mục đích chỉ nhận được yếu tố cuối cùng, nhưng vì lợi ích của tính hoàn chỉnh (và vì nó hỗ trợ bất kỳ khả năng nào - không chỉ danh sách):
Tên biến, Head được liên kết với danh sách mới được tạo không cần thiết:
Nếu bạn có ý định không làm gì với danh sách đó, đây sẽ là nhiều apropos hơn:
Hoặc, thực sự, nếu bạn biết đó là danh sách (hoặc ít nhất là chấp nhận ký hiệu đăng ký):
Trong một chức năngMột người bình luận nói:
Đây sẽ khá đơn giản để xác định:
Hoặc sử dụng 4:
Trong cả hai trường hợp:
Trường hợp đặc biệtNếu bạn đang làm một cái gì đó phức tạp hơn, bạn có thể thấy nó hoạt động nhiều hơn để có được yếu tố cuối cùng theo những cách hơi khác nhau. Nếu bạn chưa quen với lập trình, bạn nên tránh phần này, bởi vì nó kết hợp các phần khác nhau về mặt ngữ nghĩa của thuật toán. Nếu bạn thay đổi thuật toán của mình ở một nơi, nó có thể có tác động ngoài ý muốn đến một dòng mã khác. Tôi cố gắng cung cấp cảnh báo và điều kiện hoàn toàn nhất có thể, nhưng tôi có thể đã bỏ lỡ điều gì đó. Hãy bình luận nếu bạn nghĩ rằng tôi sẽ bỏ đi. Cắt látMột lát của danh sách trả về một danh sách mới - vì vậy chúng tôi có thể cắt từ -1 đến cuối nếu chúng tôi sẽ muốn phần tử trong một danh sách mới:
Điều này có mặt trái không thất bại nếu danh sách trống: 0Trong khi đó cố gắng truy cập bằng chỉ mục làm tăng một 5 cần được xử lý: 1Nhưng một lần nữa, việc cắt cho mục đích này chỉ nên được thực hiện nếu bạn cần:
>>> *head, last = a_list >>> last 'three' 6 vòng lặpLà một đặc điểm của Python, không có phạm vi bên trong trong vòng lặp 6.Nếu bạn đang thực hiện một lần lặp hoàn chỉnh trong danh sách, phần tử cuối cùng vẫn sẽ được tham chiếu bằng tên biến được gán trong vòng lặp: 2Đây không phải là ngữ nghĩa là điều cuối cùng trong danh sách. Đây là điều về mặt ngữ nghĩa là điều cuối cùng mà tên, 8, bị ràng buộc. 3Do đó, điều này chỉ nên được sử dụng để có được yếu tố cuối cùng nếu bạn
Nhận và loại bỏ nóChúng tôi cũng có thể biến đổi danh sách ban đầu của mình bằng cách xóa và trả về phần tử cuối cùng: 4Nhưng bây giờ danh sách ban đầu được sửa đổi. ( 0 thực sự là đối số mặc định, vì vậy 0 có thể được sử dụng mà không cần đối số chỉ mục): 5Chỉ làm điều này nếu
Đây là những trường hợp sử dụng hợp lệ, nhưng không phổ biến lắm. Tiết kiệm phần còn lại của ngược lại sau:Tôi không biết tại sao bạn làm điều đó, nhưng để hoàn thiện, vì 1 trả về một trình lặp (hỗ trợ giao thức iterator), bạn có thể chuyển kết quả của nó sang 2:iterator (which supports the iterator protocol) you can pass its result to 2: 6Vì vậy, nó giống như làm ngược lại điều này: 7Nhưng tôi không thể nghĩ ra một lý do chính đáng để làm điều này, trừ khi bạn cần phần còn lại của trình lặp ngược sau đó, điều này có thể trông giống như thế này hơn: 8và bây giờ: 9 |