Python tước tất cả các chuỗi trong danh sách

Trong bài viết này, bạn sẽ chỉ thấy các kỹ thuật quan trọng nhất, chẳng hạn như loại bỏ các khoảng trắng ở đầu và cuối [cũng như các khoảng trắng bên trong chuỗi]. Bạn cũng sẽ tìm hiểu cách xóa tab, dòng mới, ký tự xuống dòng [CRLF] và các ký tự khác. Và chúng tôi sẽ không sử dụng gì khác ngoài các phương thức gốc và biểu thức chính quy—không yêu cầu thư viện bên ngoài

Đến cuối bài viết này, bạn sẽ thành thạo

  • Làm thế nào để cắt một chuỗi

    • bằng cách loại bỏ khoảng trắng hàng đầu ngay từ đầu

    • bằng cách loại bỏ khoảng trắng ở cuối

    • bằng cách xóa khoảng trắng ở đầu và cuối của chuỗi

  • Cách cắt dòng mới

  • Cách cắt trả lại vận chuyển [CRLF]

  • Cách cắt các tab

  • Cách cắt tổ hợp các ký tự từ một chuỗi

  • Cách xóa nhiều khoảng trắng bên trong một chuỗi

    • bằng cách loại bỏ chỉ trùng lặp

    • bằng cách loại bỏ tất cả các khoảng trắng

  • Làm thế nào để tước một danh sách các chuỗi

  • Cách tách một chuỗi chuỗi [Numpy]

Cách cắt các ký tự từ một chuỗi

Cắt xén một chuỗi có nghĩa là xóa một số ký tự nhất định khỏi đầu, cuối hoặc cả hai bên của chuỗi. Xóa các ký tự không mong muốn giúp so sánh các chuỗi dễ dàng hơn và có thể ngăn các sự cố khó gỡ lỗi

Bạn có thể xóa bất kỳ loại ký tự o nào, nhưng thông thường điều chúng tôi quan tâm là xóa khoảng trống, dòng mới, dấu xuống dòng [CRLF], tab và các ký hiệu đặc biệt khác

Trong phần này, chúng ta sẽ xem cách xóa khoảng trắng ở đầu hoặc ở cuối, khoảng trắng, ký tự xuống dòng, ký tự xuống dòng [CRLF] và tab

Tước khoảng trắng hàng đầu từ đầu chuỗi

Lớp

>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'
6 có một phương thức rất thuận tiện để cắt bớt các khoảng trắng ở đầu có tên là
>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'
7, viết tắt của "dải trái", vì nó cắt một chuỗi từ phía bên trái. Bạn có thể nghĩ về nó như một phần cắt bên trái

>>> '   hello   '.lstrip[]
'hello   '

Khi gọi

>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'
7 mà không có đối số, nó sẽ xóa tất cả các khoảng trắng từ trái sang phải. Nhưng nếu tất cả những gì bạn muốn là loại bỏ ký tự đầu tiên, thì có hai cách để thực hiện việc này. Cái đầu tiên giả định rằng sẽ luôn có ít nhất một khoảng trắng ở đầu chuỗi. Nếu thế thì bác cứ thái đi

>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'

Nếu không có gì đảm bảo về điều đó, trước tiên chúng tôi cần kiểm tra xem chuỗi có bắt đầu bằng dấu cách không

>>> def strip_first[s: str, ch: str = ' '] -> str:
     if s and s[0] == ch:
         return s[1:]
     return s

>>> strip_first['hello']
'hello'

>>> strip_first['   hello']
 '  hello'

Tước khoảng trắng ở cuối chuỗi

Cách để xóa dấu cách ở cuối chuỗi là sử dụng

>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'
9

Phương pháp này mong đợi một danh sách các ký tự và cắt chuỗi từ bên phải. Nó xóa tất cả các ký tự khớp với một trong những ký tự bạn đã vượt qua và dừng ngay khi nó không thể khớp nữa. Theo mặc định,

>>> def strip_first[s: str, ch: str = ' '] -> str:
     if s and s[0] == ch:
         return s[1:]
     return s

>>> strip_first['hello']
'hello'

>>> strip_first['   hello']
 '  hello'
0 sẽ xóa khoảng trống nếu bạn không chuyển bất kỳ thứ gì cho nó. Bạn có thể nghĩ về nó như một trang trí bên phải

________số 8

Đôi khi bạn có thể chỉ muốn cắt ký tự cuối cùng của chuỗi. Và chúng ta có thể sử dụng logic tương tự từ ví dụ trước. Kiểm tra xem ký tự cuối cùng có phải là khoảng trắng không và sử dụng lát cắt để xóa ký tự đó

>>> def strip_last[s: str, ch: str = ' '] -> str:
     if s and s[-1] == ch:
         return s[:-1]
     return s


>>> strip_last['hello']
'hello'

>>> strip_last['hello ']
'hello'

>>> strip_last['']
''

Xóa khoảng trắng khỏi đầu và cuối chuỗi

Nếu tất cả những gì bạn muốn là xóa khoảng trắng ở đầu và cuối chuỗi, thì

>>> def strip_first[s: str, ch: str = ' '] -> str:
     if s and s[0] == ch:
         return s[1:]
     return s

>>> strip_first['hello']
'hello'

>>> strip_first['   hello']
 '  hello'
1 sẽ phục vụ bạn tốt hơn

Phương pháp này cắt cả hai bên của chuỗi. Và cũng giống như

>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'
7 và
>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'
9, nếu bạn có thể chuyển bất kỳ tổ hợp ký tự nào làm đối số, nó sẽ xóa chúng khỏi cả hai đầu

⚠️ CẢNH BÁO ⚠️. Một quan niệm sai lầm phổ biến là nghĩ rằng có hàm trim[] trong Python

>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'
3

Cách cắt dòng mới

Chúng ta đã thấy cách

>>> def strip_first[s: str, ch: str = ' '] -> str:
     if s and s[0] == ch:
         return s[1:]
     return s

>>> strip_first['hello']
'hello'

>>> strip_first['   hello']
 '  hello'
1 có thể loại bỏ các khoảng trống ở cả hai phía của chuỗi. Tôi cũng đã đề cập rằng phương thức này nhận một đối số ký tự mà bạn có thể sử dụng để chuyển tổ hợp ký tự mà bạn muốn cắt

Để cắt bớt ngắt dòng, bạn có thể vượt qua

>>> def strip_first[s: str, ch: str = ' '] -> str:
     if s and s[0] == ch:
         return s[1:]
     return s

>>> strip_first['hello']
'hello'

>>> strip_first['   hello']
 '  hello'
5 và nó sẽ loại bỏ tất cả các dòng mới từ cả hai phía của chuỗi

>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'
6

Làm thế nào để cắt giảm trở lại vận chuyển [CRLF]

Trả về vận chuyển [CR] và Nguồn cấp dữ liệu theo dòng [LF] không gì khác hơn là một ký tự xuống dòng. Chúng được đại diện bởi sự nối của

>>> def strip_first[s: str, ch: str = ' '] -> str:
     if s and s[0] == ch:
         return s[1:]
     return s

>>> strip_first['hello']
'hello'

>>> strip_first['   hello']
 '  hello'
6 và
>>> def strip_first[s: str, ch: str = ' '] -> str:
     if s and s[0] == ch:
         return s[1:]
     return s

>>> strip_first['hello']
'hello'

>>> strip_first['   hello']
 '  hello'
5 tạo thành
>>> def strip_first[s: str, ch: str = ' '] -> str:
     if s and s[0] == ch:
         return s[1:]
     return s

>>> strip_first['hello']
'hello'

>>> strip_first['   hello']
 '  hello'
8. Đây là cách Microsoft Windows, Symbian OS và các hệ điều hành không phải Unix khác đại diện cho một dòng mới [nguồn]

Xóa chúng khỏi một chuỗi cũng giống như xóa một dòng mới. Bạn cung cấp

>>> def strip_first[s: str, ch: str = ' '] -> str:
     if s and s[0] == ch:
         return s[1:]
     return s

>>> strip_first['hello']
'hello'

>>> strip_first['   hello']
 '  hello'
1 với
>>> def strip_first[s: str, ch: str = ' '] -> str:
     if s and s[0] == ch:
         return s[1:]
     return s

>>> strip_first['hello']
'hello'

>>> strip_first['   hello']
 '  hello'
8 và phương pháp thực hiện công việc của nó

>>> '   hello   '.lstrip[]
'hello   '
2

Cách cắt các tab

Nếu bạn đang làm theo hướng dẫn này ngay từ đầu, bạn có thể đã biết cách thực hiện việc này. Việc cắt các tab từ một chuỗi trong Python cũng giống như các ký tự khác, bạn sử dụng

>>> def strip_first[s: str, ch: str = ' '] -> str:
     if s and s[0] == ch:
         return s[1:]
     return s

>>> strip_first['hello']
'hello'

>>> strip_first['   hello']
 '  hello'
1 và truyền chuỗi '\t' cho nó

>>> '   hello   '.lstrip[]
'hello   '
4

Và đó là nó

Cách cắt tổ hợp các ký tự từ một chuỗi

Như tôi đã đề cập trước đây,

>>> def strip_first[s: str, ch: str = ' '] -> str:
     if s and s[0] == ch:
         return s[1:]
     return s

>>> strip_first['hello']
'hello'

>>> strip_first['   hello']
 '  hello'
1 lấy đối số là một chuỗi, không chỉ một ký tự đơn lẻ. Chuỗi ký tự này là sự kết hợp của tất cả các ký tự bạn muốn xóa khỏi đầu và cuối chuỗi của mình

>>> '   hello   '.lstrip[]
'hello   '
6

Cách xóa nhiều khoảng trắng bên trong một chuỗi

Đôi khi bạn muốn làm nhiều việc hơn là cắt xén, giả sử bạn muốn xóa các ký tự bên trong chuỗi. Có hai cách để làm điều này. một là chỉ loại bỏ các bản sao;

Chỉ loại bỏ các bản sao

Để chỉ xóa các ký tự trùng lặp, bạn có thể sử dụng mô-đun regex

>>> '   hello   '.rstrip[]
'   hello'
>>> '***hello***'.rstrip['*']
'***hello'
3

>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'
0

Phương pháp này loại bỏ tất cả các khoảng trắng liên tiếp. Điều gì sẽ xảy ra nếu bạn không chỉ muốn làm điều đó mà còn cắt chuỗi bằng cách xóa các khoảng trống ở đầu và cuối?

Một cách là tách chuỗi và sau đó nối lại như vậy

>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'
1

Xóa tất cả khoảng trắng

Bây giờ, nếu bạn muốn loại bỏ tất cả khoảng trắng trong chuỗi của mình, hãy sử dụng biểu thức chính quy hoặc gọi phương thức

>>> '   hello   '.rstrip[]
'   hello'
>>> '***hello***'.rstrip['*']
'***hello'
4

Sử dụng
>>> '   hello   '.rstrip[]
'   hello'
>>> '***hello***'.rstrip['*']
'***hello'
3 [mô-đun regex]

>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'
2

Sử dụng
>>> '   hello   '.rstrip[]
'   hello'
>>> '***hello***'.rstrip['*']
'***hello'
6

>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'
3

Làm thế nào để tước một danh sách các chuỗi

Cắt một danh sách các chuỗi gần giống như cắt một chuỗi riêng lẻ. Sự khác biệt duy nhất là bạn phải lặp lại danh sách và gọi phương thức

>>> def strip_first[s: str, ch: str = ' '] -> str:
     if s and s[0] == ch:
         return s[1:]
     return s

>>> strip_first['hello']
'hello'

>>> strip_first['   hello']
 '  hello'
1 trên mỗi phương thức. Bạn làm như vậy bằng cách sử dụng khả năng hiểu danh sách, chẳng hạn, để trả về một danh sách mới với tất cả các chuỗi được cắt bớt

>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'
4

Cách tách một mảng chuỗi [Numpy]

Việc sử dụng Numpy cho các nhiệm vụ khoa học dữ liệu là rất phổ biến do hiệu suất và tính dễ sử dụng của nó

Nếu bạn có một chuỗi các chuỗi và muốn cắt từng chuỗi, Numpy đi kèm với triển khai vector hóa hiệu quả của

>>> '   hello   '.rstrip[]
'   hello'
>>> '***hello***'.rstrip['*']
'***hello'
8

Trên thực tế, nó cũng có

>>> '   hello   '.rstrip[]
'   hello'
>>> '***hello***'.rstrip['*']
'***hello'
9,
>>> def strip_last[s: str, ch: str = ' '] -> str:
     if s and s[-1] == ch:
         return s[:-1]
     return s


>>> strip_last['hello']
'hello'

>>> strip_last['hello ']
'hello'

>>> strip_last['']
''
0,
>>> def strip_last[s: str, ch: str = ' '] -> str:
     if s and s[-1] == ch:
         return s[:-1]
     return s


>>> strip_last['hello']
'hello'

>>> strip_last['hello ']
'hello'

>>> strip_last['']
''
1 và nhiều thao tác chuỗi khác

Các phiên bản vector hóa hoạt động hơi khác một chút, chúng không phải là một phương thức mà là một chức năng trong mô-đun

>>> def strip_last[s: str, ch: str = ' '] -> str:
     if s and s[-1] == ch:
         return s[:-1]
     return s


>>> strip_last['hello']
'hello'

>>> strip_last['hello ']
'hello'

>>> strip_last['']
''
2. Vì vậy, bạn phải chuyển mảng và danh sách ký tự bạn muốn cắt

>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'
5

Sự kết luận

Trong bài đăng này, bạn đã học được một số cách cắt chuỗi trong Python, bao gồm mảng chuỗi. Python cho phép chúng ta loại bỏ các ký tự đầu và cuối một cách dễ dàng. Và nếu thay vì xóa các ký tự thừa ở mỗi bên, bạn muốn xóa các ký tự bên trong, bạn có thể tin tưởng vào mô-đun regex. Tôi hy vọng bạn thấy bài viết này hữu ích và hẹn gặp lại bạn lần sau

Người giới thiệu

ngăn xếp chồng lên nhau. com/câu hỏi/761804/how-do-i

ngăn xếp chồng lên nhau. com/câu hỏi/8270092/xóa-

ngăn xếp chồng lên nhau. com/câu hỏi/1546226/là-có

Các bài viết khác bạn có thể thích

  • Cách chọn giữa isdigit[], isdecimal[] và isnumeric[] trong Python

  • Cách so sánh hai chuỗi trong Python [theo 8 cách dễ dàng]

  • cột trụ. Cách khắc phục "c0209. định dạng một chuỗi thông thường có thể là chuỗi f [xem xét sử dụng chuỗi f]"

Chủ Đề