Nếu tôi có một danh sách và muốn cắt bớt nó để nó không quá 100 mục, làm cách nào để làm điều này?Làm cách nào để cắt bớt danh sách?
Trả lời
Để chỉnh sửa danh sách tại chỗ (chứ không phải tạo một bản sao ngắn danh sách), sử dụng:
del l[100:]
+1 Hoàn toàn quên 'del' hoạt động với lát cắt. – delnan
cắt bằng [: 100] thường là giải pháp tốt hơn vì nó có hiệu suất không đổi, nhưng del [100:] trở nên chậm hơn cho danh sách lớn hơn. – kefeizhou
kefeizhou: Điều đó có thể phụ thuộc vào những gì bạn thực sự muốn. Nếu bạn thực sự không cần các mục vượt quá 100 đầu tiên nữa, bạn nên xóa chúng.Nói rằng nó thường là một ý tưởng tốt hơn để giữ cho chúng nằm xung quanh bởi vì điều này mất ít thời gian hơn xóa chúng có vẻ lạ lý do với tôi. –
Bạn có thể sử dụng danh sách cắt:
a = a[0:100]
Và nếu bạn hoàn toàn khăng khăng giải phóng phần còn lại chưa sử dụng: del a [100:] – Confusion
@Confusion: phần còn lại được thu gom rác tự động nếu 'a' là tham chiếu duy nhất trong danh sách. –
Bạn có thể làm một cái gì đó như:
truncated = list[:100]
Các items[:100]
khác được đề cập mang đến cho bạn một danh sách mới, trong đó có 100 hạng mục đầu tiên của items
. Nếu bạn muốn sửa đổi danh sách tại chỗ, hoặc sử dụng sử dụng items[:] = items[:100]
(phân bổ lát) hoặc while len(items) > 100: items.pop()
del items[100:]
theo đề xuất của Ned Batchelder.
Bạn có thể sử dụng cắt nếu bạn không nhớ chỉ đơn giản là tạo ra một bản sao mới của danh sách chỉ chứa các phần tử bạn muốn ... tuy nhiên, điều này sẽ không được sửa đổi.
>>> a = [0,1,2,3,4,5,6,7,8,9]
>>> b = a[0:5]
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> b
[0, 1, 2, 3, 4]
Nếu bạn thực sự muốn cắt ngắn danh sách ban đầu, chỉ cần xóa các yếu tố bạn không muốn bằng cách sử dụng cắt với del
>>> del a[5:]
>>> a
[0, 1, 2, 3, 4]
Câu trả lời đúng là, tất nhiên:
>>> x = range(10)
>>> x
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x = x[:5]
>>> x
[0, 1, 2, 3, 4]
Nhưng quan trọng là nếu bạn quan tâm đến các giá trị trên 100 và muốn kéo từng cái một vì bất kỳ lý do nào, bạn cũng có thể sử dụng POP()
>>> x = range(10)
>>> x
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x.pop()
9
>>> x
[0, 1, 2, 3, 4, 5, 6, 7, 8]
Bạn thậm chí có thể xác định những yếu tố để kéo ra:
>>> x= range(10,20)
>>> x
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> x.pop(3)
13
>>> x.pop()
19
>>> x
[10, 11, 12, 14, 15, 16, 17, 18]
>>> x.pop(-1)
18
[10, 11, 12, 14, 15, 16, 17]
này loại bỏ các yếu tố cá nhân, rút ngắn danh sách, mà không sao chép.
Vì vậy, một câu trả lời ngớ ngẩn và yucky (nhưng cũng đúng) sẽ được lặp lại. Tôi chỉ đi xuống 12-8 để dễ đọc ở đây:
>>> x=range(12)
>>> for i in range(len(x), 8, -1):
... y = x.pop()
... print "popping x: ", y, ", x=", x
...
popping x: 11 , x= [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
popping x: 10 , x= [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
popping x: 9 , x= [0, 1, 2, 3, 4, 5, 6, 7, 8]
popping x: 8 , x= [0, 1, 2, 3, 4, 5, 6, 7]
Chắc chắn, nó không phải là tối ưu, nhưng tôi chỉ chạy vào một tình huống mà tôi cần thiết này vì vậy tôi nghĩ rằng tôi muốn chia sẻ nó ở đây (Tôi đang cắt ngắn danh sách khi tôi thấy giá trị không phải là Không có đầu tiên).
- 1. Làm cách nào để cắt bớt bảng đúng cách?
- 2. Làm cách nào để cắt ngắn danh sách trong C#?
- 3. Rails seed: Làm thế nào để cắt bớt bảng DB?
- 4. Làm thế nào để cắt một danh sách bằng Python
- 5. Làm thế nào để cắt bớt một bảng bằng Doctrine?
- 6. log4j cắt bớt stacktrace
- 7. Cắt bớt danh sách thành một số yếu tố nhất định
- 8. Cắt WPF ngay cả khi không cần cắt bớt - làm thế nào để tắt?
- 9. Chuỗi RODBC bị cắt bớt
- 10. CSS: xóa toàn bộ phần tử khi bị cắt bớt
- 11. Làm cách nào để ngăn chặn dbms_output.put_line khỏi việc cắt bớt khoảng trắng hàng đầu?
- 12. Làm cách nào để cắt bớt các phiên bản cũ trong Subversion?
- 13. Khi sử dụng plugin JQuery Linkify, làm cách nào để cắt bớt url?
- 14. Python: Làm thế nào để bạn chèn vào một danh sách bằng cách cắt?
- 15. Làm thế nào để cắt bớt một NSString dựa trên chiều rộng đồ họa?
- 16. Cách khôi phục dữ liệu từ bảng cắt bớt
- 17. Làm thế nào để cắt bớt một chuỗi để phù hợp trong một container?
- 18. Khách hàng Cắt bớt QueryString, gây FormatException
- 19. Trường Máy chủ SQL bị cắt bớt
- 20. Cắt bớt đôi mà không làm tròn trong C
- 21. Sử dụng hibernate/hql để cắt bớt một bảng?
- 22. XmlDocument.WriteĐể cắt bớt tập tin kết quả
- 23. Cột văn bản MySQL bị cắt bớt
- 24. làm errorbars không cắt bớt trong matplotlib với Python
- 25. cắt hai danh sách từ trong python
- 26. Làm thế nào để cắt bớt tất cả các bảng người dùng?
- 27. Big-O của danh sách cắt
- 28. Làm thế nào để cắt bớt các giá trị của một mảng có khối lượng 2D
- 29. Làm thế nào để cắt bớt quy mô hình học với mục tiêu?
- 30. làm thế nào để cắt văn bản trong css như gmail không để email danh sách chủ đề
bạn đã thử gì? – SilentGhost
có thể sao chép http://stackoverflow.com/questions/1534939/how-to-trim-a-list-in-python –