2013-11-09 38 views
6
with open("text.txt", 'r') as file: 
    for line in file: 
     line = line.rstrip('\n' + '').split(':') 
     print(line) 

Tôi đang gặp sự cố khi cố xóa các danh sách trống trong chuỗi các mảng đang được tạo. Tôi muốn làm cho mỗi dòng một mảng trong text.txt, vì vậy tôi sẽ có khả năng truy cập chính xác từng phần tử riêng lẻ, của mỗi dòng.Xóa các phần tử trống khỏi một mảng trong Python

Danh sách trống hiển thị chính mình là [''] - như bạn có thể thấy ở dòng thứ tư, tôi đã cố gắng loại bỏ chúng một cách rõ ràng. Các phần tử rỗng đã từng được lấp đầy với các ký tự dòng mới, chúng được loại bỏ thành công bằng cách sử dụng .rstrip('\n').

Edit:

Tôi đã có một quan niệm sai lầm với một số thuật ngữ, ở trên bây giờ cập nhật. Về cơ bản, tôi muốn loại bỏ các danh sách trống.

+0

Về mặt kỹ thuật '['']' không phải là danh sách trống. Đó là một danh sách với một chuỗi rỗng trong đó. Và bình luận của bạn về câu trả lời của Games cho thấy bạn bằng cách nào đó muốn nắm bắt các giá trị rỗng từ danh sách của bạn? Tôi nghĩ câu hỏi quan trọng nhất là: bất cứ điều gì? Có những cách tốt hơn để đếm đơn giản. –

Trả lời

14

Vì tôi không thể nhìn thấy đường chính xác của bạn, thật khó để cung cấp cho bạn giải pháp phù hợp với yêu cầu của bạn một cách hoàn hảo, nhưng nếu bạn muốn nhận tất cả các yếu tố trong danh sách không phải là chuỗi rỗng, thì bạn có thể làm điều này :

>>> l = ["ch", '', '', 'e', '', 'e', 'se'] 
>>> [var for var in l if var] 
Out[4]: ['ch', 'e', 'e', 'se'] 

bạn cũng có thể sử dụng filter với None hoặc bool:

>>> filter(None, l) 
Out[5]: ['ch', 'e', 'e', 'se'] 
>>> filter(bool, l) 
Out[6]: ['ch', 'e', 'e', 'se'] 

Nếu bạn muốn thoát khỏi danh sách với chuỗi rỗng, sau đó cho ví dụ cụ thể của bạn, bạn có thể làm điều này:

0.123.
with open("text.txt", 'r') as file: 
    for line in file: 
     line = line.rstrip('\n' + '').split(':') 
     # If line is just empty 
     if line != ['']: 
      print line 
+0

Bạn muốn xem dòng chính xác nào? Một ví dụ về một trong các kết quả đầu ra? Nếu vậy ... – adampski

+0

['123', '123', '1039', '123', '123', '123', '123'] [''] – adampski

+0

@ user2296349 Đó không chính xác một danh sách, bây giờ Là nó? –

Các vấn đề liên quan