Hướng dẫn how do you get rid of the extra line in python? - làm thế nào để bạn loại bỏ dòng thừa trong python?

47

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi có chuỗi lớn mà tôi chia theo dòng mới. Làm thế nào tôi có thể loại bỏ tất cả các dòng trống, (chỉ có khoảng trắng)?

Mã giả:

for stuff in largestring:
   remove stuff that is blank

Hướng dẫn how do you get rid of the extra line in python? - làm thế nào để bạn loại bỏ dòng thừa trong python?

VIFI

9351 Huy hiệu vàng10 Huy hiệu bạc24 Huy hiệu đồng1 gold badge10 silver badges24 bronze badges

Được hỏi ngày 14 tháng 9 năm 2010 lúc 18:35Sep 14, 2010 at 18:35

2

Hãy thử danh sách hiểu và

>>> mystr = "L1\nL2\n\nL3\nL4\n  \n\nL5"
>>> mystr.split('\n')
['L1', 'L2', '', 'L3', 'L4', '  ', '', 'L5']
>>> [line for line in mystr.split('\n') if line.strip() != '']
['L1', 'L2', 'L3', 'L4', 'L5']
8:

>>> mystr = "L1\nL2\n\nL3\nL4\n  \n\nL5"
>>> mystr.split('\n')
['L1', 'L2', '', 'L3', 'L4', '  ', '', 'L5']
>>> [line for line in mystr.split('\n') if line.strip() != '']
['L1', 'L2', 'L3', 'L4', 'L5']

Đã trả lời ngày 14 tháng 9 năm 2010 lúc 18:45Sep 14, 2010 at 18:45

Gimelgimelgimel

80.4K10 Huy hiệu vàng74 Huy hiệu bạc104 Huy hiệu đồng10 gold badges74 silver badges104 bronze badges

1

Sử dụng Regex:

if re.match(r'^\s*$', line):
    # line is empty (has only the following: \t\n\r and whitespace)

Sử dụng regex +

>>> mystr = "L1\nL2\n\nL3\nL4\n  \n\nL5"
>>> mystr.split('\n')
['L1', 'L2', '', 'L3', 'L4', '  ', '', 'L5']
>>> [line for line in mystr.split('\n') if line.strip() != '']
['L1', 'L2', 'L3', 'L4', 'L5']
9:

filtered = filter(lambda x: not re.match(r'^\s*$', x), original)

Như đã thấy trên Codepad.

Đã trả lời ngày 14 tháng 9 năm 2010 lúc 18:38Sep 14, 2010 at 18:38

NulluserexceptionnulluserexceptionNullUserException

82.2K27 Huy hiệu vàng206 Huy hiệu bạc231 Huy hiệu Đồng27 gold badges206 silver badges231 bronze badges

3

Tôi cũng đã thử các giải pháp Regexp và List, và liệt kê một là nhanh hơn.list one is faster.

Đây là giải pháp của tôi (theo câu trả lời trước):

text = "\n".join([ll.rstrip() for ll in original_text.splitlines() if ll.strip()])

Đã trả lời ngày 12 tháng 7 năm 2013 lúc 8:24Jul 12, 2013 at 8:24

RegiszregiszRegisz

4418 Huy hiệu bạc15 Huy hiệu Đồng8 silver badges15 bronze badges

0

lines = bigstring.split('\n')
lines = [line for line in lines if line.strip()]

Đã trả lời ngày 14 tháng 9 năm 2010 lúc 18:45Sep 14, 2010 at 18:45

Gimelgimelnmichaels

80.4K10 Huy hiệu vàng74 Huy hiệu bạc104 Huy hiệu đồng12 gold badges102 silver badges133 bronze badges

4

Sử dụng Regex:

>>> import re
>>> a = "Foo\n \nBar\nBaz\n\n   Garply\n  \n"
>>> print a
Foo

Bar
Baz

        Garply


>>> print(re.sub(r'\n\s*\n','\n',a,re.MULTILINE))
Foo
Bar
Baz
        Garply

>>> 

Sử dụng regex +

>>> mystr = "L1\nL2\n\nL3\nL4\n  \n\nL5"
>>> mystr.split('\n')
['L1', 'L2', '', 'L3', 'L4', '  ', '', 'L5']
>>> [line for line in mystr.split('\n') if line.strip() != '']
['L1', 'L2', 'L3', 'L4', 'L5']
9:May 17, 2018 at 18:45

Như đã thấy trên Codepad.mushuweasel

Đã trả lời ngày 14 tháng 9 năm 2010 lúc 18:387 silver badges7 bronze badges

1

Nulluserexceptionnulluserexception

s.replace('\n\n','\n')

82.2K27 Huy hiệu vàng206 Huy hiệu bạc231 Huy hiệu Đồng

s.replace('\n\n','\n').replace('\n\n','\n')

Tôi cũng đã thử các giải pháp Regexp và List, và liệt kê một là nhanh hơn.
• Regular Expressions (Regex) Tutorial
• Python Tutorial: re Module

Đây là giải pháp của tôi (theo câu trả lời trước):Sep 1, 2015 at 17:54

Hướng dẫn how do you get rid of the extra line in python? - làm thế nào để bạn loại bỏ dòng thừa trong python?

Đã trả lời ngày 12 tháng 7 năm 2013 lúc 8:24Ooker

Regiszregisz3 gold badges25 silver badges50 bronze badges

4

4418 Huy hiệu bạc15 Huy hiệu Đồng

    for stuff in largestring:
        print(stuff.rstrip("\n")

NmichaelsnmichaelsApr 11, 2019 at 10:27

Hướng dẫn how do you get rid of the extra line in python? - làm thế nào để bạn loại bỏ dòng thừa trong python?

48.3K12 Huy hiệu vàng102 Huy hiệu bạc133 Huy hiệu đồng

>>> mystr = "L1\nL2\n\nL3\nL4\n  \n\nL5"
>>> mystr.split('\n')
['L1', 'L2', '', 'L3', 'L4', '  ', '', 'L5']
>>> [line for line in mystr.split('\n') if line.strip() != '']
['L1', 'L2', 'L3', 'L4', 'L5']
0

Hướng dẫn how do you get rid of the extra line in python? - làm thế nào để bạn loại bỏ dòng thừa trong python?

Đáng ngạc nhiên là một re.sub đa dòng chưa được đề xuất (OH, vì bạn đã chia chuỗi của mình ... nhưng tại sao?):

Đã trả lời ngày 17 tháng 5 năm 2018 lúc 18:4550 gold badges482 silver badges561 bronze badges

MushuweaselmushuweaselNov 22, 2018 at 13:26

Hướng dẫn how do you get rid of the extra line in python? - làm thế nào để bạn loại bỏ dòng thừa trong python?

6047 Huy hiệu bạc7 Huy hiệu đồng

>>> mystr = "L1\nL2\n\nL3\nL4\n  \n\nL5"
>>> mystr.split('\n')
['L1', 'L2', '', 'L3', 'L4', '  ', '', 'L5']
>>> [line for line in mystr.split('\n') if line.strip() != '']
['L1', 'L2', 'L3', 'L4', 'L5']
1

Nếu bạn không sẵn sàng thử Regex (mà bạn nên), bạn có thể sử dụng điều này:Sep 10, 2015 at 12:49

Lặp lại điều này nhiều lần để đảm bảo không còn dòng trống. Hoặc chuỗi các lệnh:Radren

Chỉ để khuyến khích bạn sử dụng Regex, đây là hai video giới thiệu mà tôi tìm thấy trực quan: • Hướng dẫn biểu thức thông thường (Regex) • Hướng dẫn Python: RE Mô -đun4 silver badges6 bronze badges

Đã trả lời ngày 1 tháng 9 năm 2015 lúc 17:54

>>> mystr = "L1\nL2\n\nL3\nL4\n  \n\nL5"
>>> mystr.split('\n')
['L1', 'L2', '', 'L3', 'L4', '  ', '', 'L5']
>>> [line for line in mystr.split('\n') if line.strip() != '']
['L1', 'L2', 'L3', 'L4', 'L5']
2

Ookerooker

>>> mystr = "L1\nL2\n\nL3\nL4\n  \n\nL5"
>>> mystr.split('\n')
['L1', 'L2', '', 'L3', 'L4', '  ', '', 'L5']
>>> [line for line in mystr.split('\n') if line.strip() != '']
['L1', 'L2', 'L3', 'L4', 'L5']
3

1.4033 huy hiệu vàng25 Huy hiệu bạc 50 Huy hiệu Đồng

>>> mystr = "L1\nL2\n\nL3\nL4\n  \n\nL5"
>>> mystr.split('\n')
['L1', 'L2', '', 'L3', 'L4', '  ', '', 'L5']
>>> [line for line in mystr.split('\n') if line.strip() != '']
['L1', 'L2', 'L3', 'L4', 'L5']
4

Bạn có thể chỉ cần sử dụng RSTRIP:Jul 7, 2021 at 10:06

Hướng dẫn how do you get rid of the extra line in python? - làm thế nào để bạn loại bỏ dòng thừa trong python?

Đã trả lời ngày 11 tháng 4 năm 2019 lúc 10:27Kxrr

Tôi sử dụng giải pháp này để xóa các dòng trống và kết hợp mọi thứ lại với nhau như một dòng:5 silver badges13 bronze badges

1

>>> mystr = "L1\nL2\n\nL3\nL4\n  \n\nL5"
>>> mystr.split('\n')
['L1', 'L2', '', 'L3', 'L4', '  ', '', 'L5']
>>> [line for line in mystr.split('\n') if line.strip() != '']
['L1', 'L2', 'L3', 'L4', 'L5']
5

Output:

>>> mystr = "L1\nL2\n\nL3\nL4\n  \n\nL5"
>>> mystr.split('\n')
['L1', 'L2', '', 'L3', 'L4', '  ', '', 'L5']
>>> [line for line in mystr.split('\n') if line.strip() != '']
['L1', 'L2', 'L3', 'L4', 'L5']
6

Hướng dẫn how do you get rid of the extra line in python? - làm thế nào để bạn loại bỏ dòng thừa trong python?

Cody Grey ♦

Phim thương hiệu vàng 234K50482 Huy hiệu bạc561 Huy hiệu đồng5 gold badges10 silver badges19 bronze badges

Đã trả lời ngày 22 tháng 11 năm 2018 lúc 13:26Dec 16, 2021 at 5:53

Hướng dẫn how do you get rid of the extra line in python? - làm thế nào để bạn loại bỏ dòng thừa trong python?

Phiên bản của tôi:

>>> mystr = "L1\nL2\n\nL3\nL4\n  \n\nL5"
>>> mystr.split('\n')
['L1', 'L2', '', 'L3', 'L4', '  ', '', 'L5']
>>> [line for line in mystr.split('\n') if line.strip() != '']
['L1', 'L2', 'L3', 'L4', 'L5']
7

Đã trả lời ngày 10 tháng 9 năm 2015 lúc 12:49May 24, 2017 at 19:07

Hướng dẫn how do you get rid of the extra line in python? - làm thế nào để bạn loại bỏ dòng thừa trong python?

Reihan_amnReihan_amnReihan_amn

Radrenradren2 gold badges19 silver badges20 bronze badges

Làm cách nào để loại bỏ các dòng trống khỏi danh sách trong Python?

Phương pháp số 1: Sử dụng Remove () Phương thức cụ thể này khá ngây thơ và không được khuyến nghị sử dụng, nhưng thực sự là một phương pháp để thực hiện nhiệm vụ này.Xóa () thường loại bỏ sự xuất hiện đầu tiên của một chuỗi trống và chúng tôi giữ cho quá trình này cho đến khi không tìm thấy chuỗi trống nào trong danh sách.Using remove() This particular method is quite naive and not recommended use, but is indeed a method to perform this task. remove() generally removes the first occurrence of an empty string and we keep iterating this process until no empty string is found in list.

Làm thế nào để tôi thoát khỏi các dòng trống thêm?

Chỉ cần nhấp vào tùy chọn 'Hiển thị/ẩn ¶' trong thanh điều khiển của Word để xem các thẻ đoạn văn.Các thẻ đoạn kép ở đây cho biết một dòng trống và thay thế chúng bằng một thẻ duy nhất sẽ loại bỏ các dòng trống.replacing them with a single tag will remove the blank lines.

Làm thế nào để bạn tước một không gian trong Python?

Phương pháp Dải () là phương pháp được chấp nhận phổ biến nhất để loại bỏ khoảng trắng trong Python.Đó là một chức năng tích hợp Python, cắt một chuỗi bằng cách loại bỏ tất cả các khoảng trắng dẫn đầu và dấu vết.