Nó đại diện cho 'lát cắt' để lấy từ kết quả. Phần tử đầu tiên là vị trí bắt đầu, phần tử thứ hai là kết thúc (không bao gồm) và thứ ba là bước. Giá trị trống trước/sau dấu hai chấm cho biết bạn hoặc là bắt đầu từ đầu (s[:3]
) hoặc kéo dài đến cuối (s[3:]
). Bạn có thể bao gồm các con số thực tế ở đây là tốt, nhưng để chúng ra khi có thể là thành ngữ hơn.
Ví dụ:
In [1]: s = 'abcdefg'
Return slice của chuỗi bắt đầu ngay từ đầu và dừng lại ở vị trí số 2:
In [2]: s[:3]
Out[2]: 'abc'
Return slice của chuỗi bắt đầu tại ba vị trí chỉ mục và mở rộng đến cuối:
In [3]: s[3:]
Out[3]: 'defg'
Trả lại phần của chuỗi bắt đầu ở cuối và lùi lại đằng sau một yếu tố tại một thời điểm:
In [4]: s[::-1]
Out[4]: 'gfedcba'
Return slice của chuỗi có chứa tất cả các yếu tố khác:
In [5]: s[::2]
Out[5]: 'aceg'
Tất cả họ đều có thể được sử dụng kết hợp với nhau cũng. Ở đây, chúng tôi trả lại miếng trả về tất cả các yếu tố khác với giá từ vị trí số 6 và đi đến vị trí số 2 (lưu ý rằng s[:2:-2]
sẽ nhiều thành ngữ, nhưng tôi đã chọn một số kỳ lạ của các chữ cái :)):
In [6]: s[6:2:-2]
Out[6]: 'ge'
Phần tử bước xác định các phần tử cần trả lại. Trong ví dụ của bạn, các -1
cho biết nó sẽ bước lùi qua mục, một phần tử tại một thời điểm.
Tuyệt vời, điều đó rất dễ hiểu. Vì vậy, về cơ bản này không có gì khác hơn là các hoạt động danh sách được sử dụng ở đây! – Patrick
@Patrick Bạn nhận được nó :) Bạn sẽ thấy nó thường xuyên với các chuỗi/danh sách và thậm chí nó có thể được sử dụng để gán trong trường hợp danh sách (ví dụ: 'l = ['one', 'two', three ']; l [: 2] = ['đã thay đổi'] '). Hy vọng nó giúp! – RocketDonkey