2010-01-19 30 views
13

All,chia một chuỗi trong python

Tôi có một chuỗi trong python nói a="Show details1\nShow details2\nShow details3\nShow details4\nShow details5\n"

Làm thế nào để chúng ta chia trên với delimiter \n (một dòng mới).

Kết quả nên càng ['Show details1', 'Show details2', ..., 'Show details5']

+1

bạn có muốn nó là ["hiển thị", "chi tiết1 không "," hiển thị "," chi tiết2 ", ...] hoặc [" hiển thị chi tiết1 "," hiển thị chi tiết2 ", ...] –

+0

Đó có phải là '\ n' hay là ký tự dòng mới? – ezod

+0

@ezod: '\ n' là ký tự dòng mới – SilentGhost

Trả lời

15

Nếu bạn đang quan tâm chỉ với newline trailing, bạn có thể làm:

a.rstrip().split('\n') 

Xem, str.lstrip() và str.strip() cho các biến thể.

Nếu bạn đang nói chung liên quan bằng dòng mới thừa sản xuất các mặt hàng có sản phẩm nào, bạn có thể làm:

filter(None, a.split('\n')) 
+0

Cảm ơn, đây là những gì tôi đang tìm kiếm ........................... – Hulk

+0

Cảm ơn @ddaa. Nó đã giúp rất nhiều –

0

thử:

a.split('\n') 
+0

Công việc này không hoạt động. tôi nhận kết quả là ['Hiển thị chi tiết', 'Hiển thị chi tiết', ''] 1 yếu tố khác – Hulk

+0

Vì vậy, bỏ qua phần tử cuối cùng? Chuỗi đầu vào của bạn không có chuỗi rỗng sau \ n. – Ken

20

Sử dụng a.splitlines(). Điều này sẽ trả về cho bạn một danh sách các dòng riêng biệt. Để có được kết quả "nên" của bạn, hãy thêm " ".join(a.splitlines()) và để nhận được tất cả trong trường hợp thấp hơn như được hiển thị, toàn bộ enchilada trông giống như " ".join(a.splitlines()).lower().

+0

trong sự tò mò, hiệu suất này khôn ngoan đến mức nào? –

+0

Paul, tôi đã tích hợp thông tin từ nhận xét của OP cho câu trả lời khác. Anh ta dường như không muốn phần "tham gia" này ... –

+0

@ Dan, rất nhanh. Trên máy tính của tôi, nó chia nhỏ chuỗi 10MB 'thử nghiệm \ n' * int (1e6) 'này trong 280ms hoặc 28ns trên mỗi char. Bạn có vấn đề về hiệu suất liên quan đến chức năng này không? –

1
a.split('\n') 

sẽ quay trở lại một mục rỗng là thành viên cuối cùng của list.so sử dụng

a.split('\n')[:-1]

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