Tôi làm cách nào để có thể tương đương với Python pdtolist từ Pop-11?Danh sách động tự động mở rộng
Giả sử tôi có máy phát điện được gọi là g trả về (số nguyên) mỗi lần một số nguyên. Tôi muốn xây dựng danh sách a tự động phát triển khi tôi yêu cầu các giá trị vượt quá đầu hiện tại của danh sách. Ví dụ:
print a # => [ 0, 1, 2, g]
print a[0] # => 0
print a[1] # => 1
print a[2] # => 2
# (obvious enough up to here)
print a[6] # => 6
print a # => [ 0, 1, 2, 3, 4, 5, 6, g]
# list has automatically expanded
a = a[4:] # discard some previous values
print a # => [ 4, 5, 6, g]
print a[0] # => 4
ngữ - dự đoán một sự hiểu lầm có khả năng: một danh sách là một "mảng động" nhưng đó không phải những gì tôi có ý nghĩa; Tôi muốn một "danh sách động" theo nghĩa trừu tượng hơn.
Để giải thích động lực tốt hơn, giả sử bạn có 999999999 mục cần xử lý. Cố gắng để phù hợp với tất cả những người vào bộ nhớ (trong một danh sách bình thường) tất cả cùng một lúc sẽ là một thách thức. Một máy phát điện giải quyết một phần của vấn đề bằng cách trình bày chúng cùng một lúc; mỗi cái được tạo theo yêu cầu hoặc đọc riêng từ đĩa. Nhưng giả sử trong quá trình xử lý bạn muốn tham khảo một số giá trị gần đây, không chỉ là giá trị hiện tại? Bạn có thể nhớ mười (mười) giá trị cuối cùng trong một danh sách riêng biệt. Nhưng một danh sách động là tốt hơn, vì nó ghi nhớ chúng tự động.
Ghi đè phương thức '__getitem__' của danh sách để bắt' IndexError'. –
Vì vậy, bạn có danh sách 'L' và thực hiện' L [999999999] '- danh sách sẽ trở thành chiều dài đó? –
Vâng, về nguyên tắc. Caveat programmor! –