Giả sử tôi có một danh sách với các yếu tố XLàm thế nào để cắt một danh sách bằng Python
[4,76,2,8,6,4,3,7,2,1...]
Tôi muốn 5 yếu tố đầu tiên. Trừ khi nó có ít hơn 5 yếu tố.
[4,76,2,8,6]
Làm cách nào để thực hiện điều đó?
Giả sử tôi có một danh sách với các yếu tố XLàm thế nào để cắt một danh sách bằng Python
[4,76,2,8,6,4,3,7,2,1...]
Tôi muốn 5 yếu tố đầu tiên. Trừ khi nó có ít hơn 5 yếu tố.
[4,76,2,8,6]
Làm cách nào để thực hiện điều đó?
Bạn chỉ cần nhấn chìm nó với [:5]
cho biết bạn muốn (tối đa) 5 thành phần đầu tiên.
>>> [1,2,3,4,5,6,7,8][:5]
[1, 2, 3, 4, 5]
>>> [1,2,3][:5]
[1, 2, 3]
>>> x = [6,7,8,9,10,11,12]
>>> x[:5]
[6, 7, 8, 9, 10]
Ngoài ra, đặt dấu hai chấm ở bên phải của số có nghĩa là tính từ phần tử thứ n trở đi - đừng quên danh sách đó là 0-based!
>>> x[5:]
[11, 12]
Điều này thường được gọi là cắt. – Steve314
Điều này tạo ra một danh sách * mới *, nó không cắt bỏ danh sách hiện có. Để cắt tại chỗ, sử dụng 'del' trên một lát; ví dụ. 'del listobj [-x:]' sẽ loại bỏ các phần tử * x * cuối cùng khỏi đối tượng danh sách. –
l = [4,76,2,8,6,4,3,7,2,1]
l = l[:5]
Chỉ cần không gọi danh sách của bạn 'danh sách' trong mã thực! –
@too Tất nhiên, điều này chỉ được thực hiện cho mục đích trình diễn: D – mgbowen
>>> [1,2,3,4,5,6,7,8,9][:5]
[1, 2, 3, 4, 5]
>>> [1,2,3][:5]
[1, 2, 3]
Để cắt một danh sách ở vị trí mà không cần tạo bản sao của nó, sử dụng del
:
>>> t = [1, 2, 3, 4, 5]
>>> # delete elements starting from index 4 to the end
>>> del t[4:]
>>> t
[1, 2, 3, 4]
>>> # delete elements starting from index 5 to the end
>>> # but the list has only 4 elements -- no error
>>> del t[5:]
>>> t
[1, 2, 3, 4]
>>>
Xem thêm: http://stackoverflow.com/questions/509211/good-primer- cho-python-slice-ký hiệu –