The Python tutorial giải thích hành vi của slice khi chỉ mục là số âm, nhưng tôi không thể tìm thấy tài liệu mô tả hành vi khi chỉ mục kết thúc đứng trước chỉ mục bắt đầu. (Tôi cũng đã xem Explain Python's slice notation và có lẽ tôi không đọc đủ kỹ lưỡng, nhưng câu trả lời dường như không giải quyết được vấn đề này.)Danh sách [i: j] có được bảo đảm là danh sách trống không nếu danh sách [j] đứng trước danh sách [i]?
Hành vi mà tôi quan sát là danh sách trống được trả về, điều đó có vẻ hợp lý với tôi. Tuy nhiên, nó cũng có vẻ hợp lý đối với tôi vì điều này để trả lại một danh sách các mục giữa i
và j
theo thứ tự đảo ngược hoặc đơn giản là đưa ra một ngoại lệ.
Có phải list[i:j]
được bảo đảm là danh sách trống nếu list[j]
đứng trước list[i]
?
Ah, * đó là * nơi được đề cập trong tài liệu Python. Chính xác những gì tôi đang tìm kiếm. – jamesdlin
Bạn có ý nghĩa gì với chữ in nghiêng "cho các loại Python chuẩn"? – inf
@ bamboon: xử lý các lát là loại cụ thể. Các kiểu 'list',' tuple', 'str',' bytes' và 'range' đều hoạt động như thế này, nhưng nếu bạn thực hiện kiểu của riêng bạn, phương thức' __getitem__' của bạn là miễn phí để xử lý các slice khác nhau. –