Có cách nào để tạo ra một "lát cắt" của một chuỗi trong Python 3 hoạt động giống như một lát thông thường nhưng không tạo ra một bản sao của phần cắt lát của chuỗi? Khi chuỗi gốc được cập nhật, "chế độ xem lát cắt" sẽ phản ánh bản cập nhật.Trăn lát không có bản sao?
>>> l = list(range(100))
>>> s = Slice(l, 1, 50, 3) # Should behave like l[1:50:3]
>>> s[1]
4
>>> l[4] = 'foo'
>>> s[1] # Should reflect the updated value
'foo'
Tôi có thể viết riêng lớp học này nhưng tôi muốn tìm hiểu xem có cách tích hợp hay không.
Related - http://stackoverflow.com/questions/3485475/can-i-create-a-view-on-a-python-list Không chắc chắn có điều gì đó không đi vào trong trong những năm căng thẳng, vì vậy không bỏ phiếu để đóng như là một bản sao :-) –
Bạn có thể chỉ định câu trả lời nào bạn mong đợi khác hơn là được cung cấp trong câu hỏi được liên kết: custom Slice class, numpy, memoryview, generator (iterator)? – jfs