Cách xóa dấu chấm câu khỏi danh sách chuỗi python

Dấu câu là ký hiệu hoặc dấu hiệu dùng để biểu thị cấu trúc của cú pháp. Nó còn được gọi là dải phân cách. sau đây là các ví dụ về dấu chấm câu được sử dụng trong lập trình

  • ( ) - để đại diện cho các đối số cho một phương thức
  • [ ] - để đại diện cho các chỉ số mảng
  • { } - để đại diện cho khối câu lệnh
  • , - Nó được sử dụng để tách các mục trong bộ/danh sách
  • ;

Sử dụng str. phương thức translate()

Đây là một phương pháp nhanh để loại bỏ tất cả các dấu câu khỏi một chuỗi

Trong ví dụ sau, chúng ta sẽ sử dụng hàm translate() từ thư viện chuỗi tích hợp để xóa tất cả dấu chấm câu khỏi chuỗi

Ví dụ

# Python program to strip punctuation from string
# Using string library

import string

# String with punctuation's
my_string = "Hello!!!, This is ##STechies$$."

# Remove all punctuation
print(my_string.translate(str.maketrans('', '', string.punctuation)))

đầu ra

Hello This is STechies

Sử dụng Phương thức Biểu thức Chính quy (REGEX)

Bằng cách sử dụng các biểu thức chính quy, chúng ta có thể xóa dấu chấm câu khỏi chuỗi với sự trợ giúp của hàm và mẫu chuỗi con

r'[^\w\s]'. Mẫu để chọn ký tự và số

Ví dụ

# Python program to strip punctuation from string
# Using Regular Expressions (REGEX) 

import re

# String with punctuation's
string = "Hello!!!, $#@!*()&,.This is ##STechies$$."

final_string = re.sub(r'[^\w\s]','',string)

# Print final String
print('String with Punctuation: ', string)
print('String without Punctuation: ', final_string)


đầu ra

String with Punctuation:  Hello!!!, $#@!*()&,.This is ##STechies$$.
String without Punctuation:  Hello This is STechies

Phương thức chức năng tùy chỉnh

Trong ví dụ sau đây, chúng ta sẽ tạo chương trình kiểm tra từng ký tự trong chuỗi bằng cách sử dụng vòng lặp for, nếu ký tự đó là dấu chấm câu thì nó sẽ thay thế bằng một chuỗi rỗng

Chúng tôi đã kiểm tra xem ký tự có ở trong replace()1 hay không, nếu đúng như vậy thì đã sử dụng phương thức replace() để thay thế ký tự dấu chấm câu bằng một chuỗi rỗng

Trong Python, replace()3 là chuỗi được khởi tạo trước có tất cả các dấu chấm câu, chúng ta cũng có thể sử dụng print chúng dưới dạng replace()4 để xem tất cả các dấu chấm câu

Phương thức replace() lấy hai cụm từ trong đó mẫu/cụm từ đầu tiên được thay thế bằng mẫu/cụm từ thứ hai

Theo mặc định, hàm replace() sẽ thay thế tất cả các lần xuất hiện nhưng chúng ta cũng có thể chuyển một replace()7 để xóa dấu chấm câu khỏi các phần tử replace()8 đầu tiên của danh sách

Khi chúng tôi đã lặp lại trên

Hello This is STechies
2, hãy sử dụng phương thức
Hello This is STechies
3 để nối thêm
Hello This is STechies
2 vào
Hello This is STechies
52

Ở đây, chúng tôi đã sử dụng phương pháp

Hello This is STechies
3 để nối các phần tử vào cuối danh sách, trong trường hợp của chúng tôi là
Hello This is STechies
7. Cuối cùng, chúng tôi đã sử dụng câu lệnh
Hello This is STechies
55 để in danh sách được cập nhật

Bạn có thể nhận thấy rằng chúng tôi có một chuỗi trống trong đầu ra ở trên không bắt buộc. Đối với điều đó, chúng ta có thể thêm một điều kiện khác để đánh giá xem phần tử hiện tại có phải là một chuỗi rỗng hay không

Nếu đúng như vậy, chúng ta có thể xóa phần tử đó khỏi danh sách;

Sử dụng cho Vòng lặp với Phương thức thay thế ()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

 

nhập chuỗi

 

my_list = ["Thế nào", "Hello,", "Goodbye!", "Cẩn thận", ""<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<]

new_list = []

 

cho từ trong my_list.

    nếu từ == "":

        my_list. xóa(từ)

    khác.

        cho ký tự trong từ:

            if ký tự trong chuỗi.dấu câu.

                        từ = từ. thay thế(ký tự,")  

        new_list. chắp thêm(từ)

 

in(new_list)

 

Bây giờ, chúng ta sẽ nhận được kết quả sau

ĐẦU RA

1

2

3

 

['Xin chào', 'Xin chào', 'Goodbye', 'Take Care']

 

Đoạn mã này tương tự như ví dụ mã đầu tiên nhưng chúng tôi đã sử dụng câu lệnh

Hello This is STechies
57 để kiểm tra xem
Hello This is STechies
2 có phải là một chuỗi rỗng hay không

Nếu đúng như vậy, chúng tôi đã sử dụng hàm

Hello This is STechies
59 để loại bỏ
Hello This is STechies
2 đã chỉ định khỏi danh sách;

Sử dụng hiểu danh sách lồng nhau

Để xóa dấu câu khỏi danh sách đã cho trong Python

  • Sử dụng vòng lặp bên trong
    Hello This is STechies
    5 để lặp qua từng ký tự từ và kiểm tra xem ký tự đó có thuộc về
    # Python program to strip punctuation from string
    # Using Regular Expressions (REGEX) 
    
    import re
    
    # String with punctuation's
    string = "Hello!!!, $#@!*()&,.This is ##STechies$$."
    
    final_string = re.sub(r'[^\w\s]','',string)
    
    # Print final String
    print('String with Punctuation: ', string)
    print('String without Punctuation: ', final_string)
    
    
    
    6 không.
    Sử dụng
    # Python program to strip punctuation from string
    # Using Regular Expressions (REGEX) 
    
    import re
    
    # String with punctuation's
    string = "Hello!!!, $#@!*()&,.This is ##STechies$$."
    
    final_string = re.sub(r'[^\w\s]','',string)
    
    # Print final String
    print('String with Punctuation: ', string)
    print('String without Punctuation: ', final_string)
    
    
    
    74 để nối tất cả các ký tự được trả về bởi vòng lặp trên với chuỗi trống và tạo ra một từ hoàn chỉnh không có bất kỳ dấu chấm câu nào.
  • Sử dụng vòng lặp
    Hello This is STechies
    5 bên ngoài để thực hiện việc hiểu danh sách bên trong cho mọi từ bên trong danh sách
    Hello This is STechies
    52
  • Lưu trữ tất cả các từ được trả về bằng cách hiểu danh sách bên ngoài vào danh sách
    Hello This is STechies
    7

Sử dụng hiểu danh sách lồng nhau

1

2

3

4

5

6

7

8

9

 

nhập chuỗi

my_list = ["Thế nào", "Hello,", "Goodbye!", "Cẩn thận", ""<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<]

 

new_list = [''. tham gia(nhân vật cho nhân vậtin word

               nếu nhân vật không trong string.dấu câu)

               cho từ trong my_list]

in(new_list)

 

Ta sẽ được danh sách sau khi chạy chương trình trên

ĐẦU RA

1

2

3

 

['Xin chào', 'Xin chào', 'Goodbye', 'Take Care', '']

 

Thông thường, mã này có vẻ khó hiểu đối với hầu hết mọi người nhưng hãy chia nhỏ mã này thành nhiều phần để hiểu

Đoạn mã trên đang sử dụng cách hiểu danh sách lồng nhau có hai phần, phần bên trong và phần bên ngoài

# Python program to strip punctuation from string
# Using Regular Expressions (REGEX) 

import re

# String with punctuation's
string = "Hello!!!, $#@!*()&,.This is ##STechies$$."

final_string = re.sub(r'[^\w\s]','',string)

# Print final String
print('String with Punctuation: ', string)
print('String without Punctuation: ', final_string)


78 là phần bên trong trong khi
# Python program to strip punctuation from string
# Using Regular Expressions (REGEX) 

import re

# String with punctuation's
string = "Hello!!!, $#@!*()&,.This is ##STechies$$."

final_string = re.sub(r'[^\w\s]','',string)

# Print final String
print('String with Punctuation: ', string)
print('String without Punctuation: ', final_string)


79 là phần bên ngoài của việc hiểu danh sách. Ở đây, phần bên ngoài chạy phần bên trong như sau

Ở phần bên trong, chúng tôi đã sử dụng vòng lặp

Hello This is STechies
5 để lặp lại từng chữ cái của
Hello This is STechies
2 và đảm bảo rằng
# Python program to strip punctuation from string
# Using Regular Expressions (REGEX) 

import re

# String with punctuation's
string = "Hello!!!, $#@!*()&,.This is ##STechies$$."

final_string = re.sub(r'[^\w\s]','',string)

# Print final String
print('String with Punctuation: ', string)
print('String without Punctuation: ', final_string)


62 không có trong
# Python program to strip punctuation from string
# Using Regular Expressions (REGEX) 

import re

# String with punctuation's
string = "Hello!!!, $#@!*()&,.This is ##STechies$$."

final_string = re.sub(r'[^\w\s]','',string)

# Print final String
print('String with Punctuation: ', string)
print('String without Punctuation: ', final_string)


6

Gói

# Python program to strip punctuation from string
# Using Regular Expressions (REGEX) 

import re

# String with punctuation's
string = "Hello!!!, $#@!*()&,.This is ##STechies$$."

final_string = re.sub(r'[^\w\s]','',string)

# Print final String
print('String with Punctuation: ', string)
print('String without Punctuation: ', final_string)


74 bên trong đã nối tất cả các ký tự được trả về bằng chuỗi trống

Ở phần bên ngoài, chúng tôi đã sử dụng vòng lặp

Hello This is STechies
5 để thực hiện phần bên trong cho mỗi
Hello This is STechies
2 trong
Hello This is STechies
52 và lưu các từ được trả về (không có dấu chấm câu) trong
Hello This is STechies
7

Cuối cùng, chúng tôi đã sử dụng câu lệnh

Hello This is STechies
55 để hiển thị kết quả trên bảng điều khiển

Cách tiếp cận này phù hợp hơn khi chúng tôi có không gian bộ nhớ hạn chế vì khả năng hiểu danh sách không chỉ mang lại kết quả tương tự với ít dòng mã hơn mà còn cho phép chúng tôi thực hiện _______40 sửa đổi. Điều đó có nghĩa là chúng ta không phải tạo danh sách mới mà có thể cập nhật danh sách gốc

Lưu ý rằng chúng ta lại có một chuỗi trống trong đầu ra ở trên mà chúng ta có thể loại bỏ bằng cách sử dụng câu lệnh

# Python program to strip punctuation from string
# Using Regular Expressions (REGEX) 

import re

# String with punctuation's
string = "Hello!!!, $#@!*()&,.This is ##STechies$$."

final_string = re.sub(r'[^\w\s]','',string)

# Print final String
print('String with Punctuation: ', string)
print('String without Punctuation: ', final_string)


7 bổ sung ở phần bên ngoài của phần hiểu danh sách như sau

Sử dụng hiểu danh sách lồng nhau

1

2

3

4

5

6

7

8

9

10

 

nhập chuỗi

my_list = ["Thế nào", "Hello,", "Goodbye!", "Cẩn thận", ""<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<]

 

new_list = [''. tham gia(nhân vật cho nhân vậtin word

              nếu nhân vật không trong string.dấu câu)

              cho từ trong my_list

              nếu từ]

in(new_list)

 

Chương trình trên sẽ hiển thị đầu ra sau

ĐẦU RA

1

2

3

 

['Xin chào', 'Xin chào', 'Good bye', 'Take Care']

 

đọc thêm

Python Xóa dòng mới khỏi danh sách

Đọc thêm →

Xóa tất cả các trường hợp của phần tử khỏi danh sách trong Python

Đọc thêm →

Sử dụng chức năng replace()2

Để loại bỏ các dấu chấm câu khỏi danh sách đã cho trong Python

  • Sử dụng hàm replace()2 với hằng số
    # Python program to strip punctuation from string
    # Using Regular Expressions (REGEX) 
    
    import re
    
    # String with punctuation's
    string = "Hello!!!, $#@!*()&,.This is ##STechies$$."
    
    final_string = re.sub(r'[^\w\s]','',string)
    
    # Print final String
    print('String with Punctuation: ', string)
    print('String without Punctuation: ', final_string)
    
    
    
    6 được khởi tạo trước và khả năng hiểu danh sách

sử dụng str. phương thức translate()

1

2

3

4

5

6

 

nhập chuỗi

my_list = ["Thế nào", "Hello,", "Goodbye!", "Cẩn thận", ""<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<]

new_list = [từ. dịch(chuỗi. dấu câu) cho từ trong my_list]

in(new_list)

 

Chúng ta sẽ nhận được kết quả sau khi chạy thành công đoạn code trên

ĐẦU RA

1

2

3

 

["Thế nào", 'Xin chào!' . ' 'Goodbye!', 'Cẩn thận', '']

 

Sử dụng replace()2 dễ hiểu hơn và nhanh hơn về mặt thực thi so với hai cách tiếp cận cuối cùng

Việc hiểu danh sách đã thực hiện replace()6 cho mỗi

Hello This is STechies
2 trong
Hello This is STechies
52 trong khi replace()9 ánh xạ từng ký tự trong
# Python program to strip punctuation from string
# Using Regular Expressions (REGEX) 

import re

# String with punctuation's
string = "Hello!!!, $#@!*()&,.This is ##STechies$$."

final_string = re.sub(r'[^\w\s]','',string)

# Print final String
print('String with Punctuation: ', string)
print('String without Punctuation: ', final_string)


6 thành một chuỗi trống

Lưu ý rằng, replace()9 đã ánh xạ từng ký tự cho mỗi

Hello This is STechies
2 trong
Hello This is STechies
52

Cuối cùng, chúng tôi đã lưu tất cả các phần tử được trả về bằng cách hiểu danh sách trong

Hello This is STechies
7 và hiển thị chúng trên màn hình