Hướng dẫn how do i remove unwanted symbols in python? - làm cách nào để xóa các ký hiệu không mong muốn trong python?

Dưới đây là một chức năng loại bỏ tất cả các ký tự ASCII khó chịu, ngoại lệ duy nhất là "&" được thay thế bằng "và". Tôi sử dụng nó cho cảnh sát một hệ thống tập tin và đảm bảo rằng tất cả các tệp đều tuân thủ sơ đồ đặt tên tệp mà tôi khẳng định mọi người sử dụng.

def cleanString(incomingString):
    newstring = incomingString
    newstring = newstring.replace("!","")
    newstring = newstring.replace("@","")
    newstring = newstring.replace("#","")
    newstring = newstring.replace("$","")
    newstring = newstring.replace("%","")
    newstring = newstring.replace("^","")
    newstring = newstring.replace("&","and")
    newstring = newstring.replace("*","")
    newstring = newstring.replace("(","")
    newstring = newstring.replace(")","")
    newstring = newstring.replace("+","")
    newstring = newstring.replace("=","")
    newstring = newstring.replace("?","")
    newstring = newstring.replace("\'","")
    newstring = newstring.replace("\"","")
    newstring = newstring.replace("{","")
    newstring = newstring.replace("}","")
    newstring = newstring.replace("[","")
    newstring = newstring.replace("]","")
    newstring = newstring.replace("<","")
    newstring = newstring.replace(">","")
    newstring = newstring.replace("~","")
    newstring = newstring.replace("`","")
    newstring = newstring.replace(":","")
    newstring = newstring.replace(";","")
    newstring = newstring.replace("|","")
    newstring = newstring.replace("\\","")
    newstring = newstring.replace("/","")        
    return newstring

Giới thiệu

Trong hướng dẫn này, chúng ta sẽ xem cách loại bỏ một ký tự khỏi một chuỗi trong Python.

Chuỗi và đặc biệt là đầu vào do người dùng tạo có thể chứa các ký tự không mong muốn, chẳng hạn như các ký tự đặc biệt trong trường tên người dùng mà chúng tôi không muốn lưu trữ. Trong những trường hợp đó, chúng tôi có thể thích loại bỏ các ký tự cụ thể khỏi một chuỗi đã cho.

Cách phổ biến nhất để loại bỏ ký tự khỏi chuỗi là bằng phương pháp

original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
2, nhưng chúng ta cũng có thể sử dụng phương pháp
original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
3 và thậm chí thay thế một hoặc nhiều lần xuất hiện của một ký tự nhất định.

Xóa ký tự trong Python bằng cách sử dụng thay thế ()

Lớp

original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
4 cung cấp một phương thức
original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
2, thay thế một ký tự bằng một ký tự khác. Điều đáng chú ý là chức năng của anh ta trả về một chuỗi mới với các ký tự được thay thế, vì các chuỗi là bất biến. Chuỗi ban đầu vẫn không thay đổi, nhưng đối tượng trong bộ nhớ bị mất trừ khi chúng ta giữ một tham chiếu đến nó còn sống. Thông thường, bạn sẽ gán giá trị được trả về cho cùng một con trỏ hoặc một giá trị mới.immutable. The original string remains unchanged, but the object in memory is lost unless we keep a reference to it alive. Typically, you'll assign the returned value either to the same pointer or a new one.

Phương pháp thay thế tất cả các lần xuất hiện của một ký tự, với một phương pháp mới. Ví dụ,

original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
6 sẽ thay thế tất cả các lần xuất hiện của
original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
7 trong
original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
8 bằng ký tự
original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
9. Để xóa một ký tự khỏi chuỗi qua
original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
2, chúng tôi sẽ thay thế nó bằng một ký tự trống:

original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)

Khi chúng tôi chạy mã này, chúng tôi được chào đón:

String after removing the character 'a': stck buse

Xóa ký tự trong python bằng dịch ()

Các chuỗi Python có phương thức

original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
3 thay thế các ký tự bằng các ký tự khác được chỉ định trong bảng dịch.

Một bảng dịch chỉ là một từ điển của các ánh xạ giá trị khóa trong đó mỗi khóa sẽ được thay thế bằng một giá trị.translation table is just a dictionary of key-value mappings where each key will be replaced with a value.

Để phương pháp này hoạt động, chúng ta phải chỉ định giá trị Unicode cho các chuỗi mà chúng ta có thể nhận được thông qua hàm

String after removing the character 'a': stck buse
2.

Ví dụ,

String after removing the character 'a': stck buse
3 sẽ thay thế các lần xuất hiện
original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
7 bằng
String after removing the character 'a': stck buse
5 và
original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
9 bằng
String after removing the character 'a': stck buse
7.

Để xóa ký tự khỏi chuỗi bằng cách sử dụng

original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
3, bạn sẽ cần ánh xạ giá trị Unicode của ký tự với
String after removing the character 'a': stck buse
9 trong bảng dịch:

original_string = "stack abuse"
# removing character 'a'
new_string = original_string.translate({ord('a'): None})
print("String after removing the character 'a':", new_string)

Mã này dẫn đến:

String after removing the character 'a': stck buse

Xóa một số lần xuất hiện của một ký tự

Các phương pháp

original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
2 và
original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
3 thay thế tất cả các sự xuất hiện của một ký tự nhất định bằng một phương pháp khác. Tuy nhiên, phương thức
original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
2 có một đối số tùy chọn
original_string = "stack abuse"
# removing character 'a'
new_string = original_string.translate({ord('a'): None})
print("String after removing the character 'a':", new_string)
3. Nếu nó được đưa ra, nó chỉ thay thế
original_string = "stack abuse"
# removing character 'a'
new_string = original_string.translate({ord('a'): None})
print("String after removing the character 'a':", new_string)
3 số xuất hiện của ký tự đã cho.

Chúng ta hãy thử chỉ xóa

original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
7 đầu tiên khỏi chuỗi, thay vì tất cả các lần xuất hiện:

original_string = "stack abuse"
# removing character 's'
new_string = original_string.replace('a',  '', 1)
print("String after removing the character 'a':", new_string)

Đầu ra của mã trên sẽ trông như thế này:

String after removing the character 'a': stck abuse

Vì số lượng được đặt thành

original_string = "stack abuse"
# removing character 'a'
new_string = original_string.translate({ord('a'): None})
print("String after removing the character 'a':", new_string)
6, chỉ có lần xuất hiện đầu tiên của
original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
7 được thay thế - điều này rất hữu ích khi bạn muốn xóa một và chỉ một ký tự.

Tạo thủ công một chuỗi mới mà không có ký tự

Một kỹ thuật bí truyền, nhưng đơn giản sẽ là tạo ra một chuỗi trống và vòng lặp qua chuỗi ban đầu. Trong vòng lặp, chúng tôi sẽ viết mọi ký tự vào chuỗi mới ngoại trừ bản để xóa.

Đây thực sự là những gì xảy ra dưới mui xe, với một số xác nhận thêm. Vì Python được triển khai trong C, chúng ta có thể đạt đỉnh ở mã nguồn

original_string = "stack abuse"
# removing character 'a'
new_string = original_string.translate({ord('a'): None})
print("String after removing the character 'a':", new_string)
8, xác định phương thức
original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
2, cuối cùng gọi là
String after removing the character 'a': stck buse
0 hoặc
String after removing the character 'a': stck buse
1:

    start = self_s;
    end = self_s + self_len;
    while (count-- > 0) {
        next = findchar(start, end-start, from_c);
        if (next == NULL)
            break;

        if (next == start) {
            /* replace with the 'to' */
            Py_MEMCPY(result_s, to_s, to_len);
            result_s += to_len;
            start += 1;
        } else {
            /* copy the unchanged old then the 'to' */
            Py_MEMCPY(result_s, start, next-start);
            result_s += (next-start);
            Py_MEMCPY(result_s, to_s, to_len);
            result_s += to_len;
            start = next+1;
        }
    }
    /* Copy the remainder of the remaining string */
    Py_MEMCPY(result_s, start, end-start);

    return result;

Để đạt được sự đánh giá cao về số lượng logic được trừu tượng hóa đằng sau các API cấp cao, trực quan, trực quan, chúng ta có thể thực hiện quá trình này theo cách thủ công:

def remove_character(original_string, character, occurrence_num):
    new_string = ""
    for char in original_string:
        if char == character and occurrence_num > 0:
            occurrence_num = occurrence_num-1
            continue
        else:
            new_string += char
    return new_string                
                
                
string = 'stack abuse'
print(remove_character(string, 'a', 0))
print(remove_character(string, 'a', 1))
print(remove_character(string, 'a', 2))

Phần mã trên sẽ tạo ra đầu ra sau:

Kiểm tra hướng dẫn thực hành của chúng tôi, thực tế để học Git, với các thực hành tốt nhất, các tiêu chuẩn được công nghiệp chấp nhận và bao gồm bảng gian lận. Ngừng các lệnh git googling và thực sự tìm hiểu nó!

stack abuse
stck abuse
stck buse

Chúng ta có thể thấy - phương pháp riêng của chúng ta thực hiện theo cách tương tự như phương thức

original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
2, nhưng nó kém hiệu quả hơn rất nhiều:

original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
0

Thời gian các phương pháp này dẫn đến:

original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
1

Sự kết luận

Trong hướng dẫn này, chúng tôi đã khám phá cách chúng tôi có thể xóa các ký tự khỏi một chuỗi trong Python. Chúng ta đã thấy cách sử dụng các phương thức

original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
2 và
original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
3 để loại bỏ các ký tự bằng cách thay thế chúng bằng một chuỗi trống hoặc unicode của chúng bằng
String after removing the character 'a': stck buse
9.

Sau đó, chúng tôi đã sử dụng

original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
2 để loại bỏ một số lần xuất hiện được xác định trước của ký tự đã cho và thậm chí là vòng lặp
String after removing the character 'a': stck buse
7 cũ tốt. Phương pháp
original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
3 rất hữu ích nếu chúng ta phải xóa một tập hợp các ký tự, vì chúng ta có thể cung cấp cho nó một bảng dịch. Và phương pháp
original_string = "stack abuse"
# Removing character 'a' and replacing with an empty character
new_string = original_string.replace('a', '')
print("String after removing the character 'a':", new_string)
2 rất tiện dụng nếu chúng ta muốn loại bỏ một số lần xuất hiện của một ký tự nhất định.

Làm cách nào để loại bỏ các biểu tượng đặc biệt trong Python?

Sử dụng 'str.Thay thế (), chúng ta có thể thay thế một ký tự cụ thể.Nếu chúng ta muốn xóa ký tự cụ thể đó, hãy thay thế ký tự đó bằng một chuỗi trống.STR.Phương thức thay thế () sẽ thay thế tất cả các lần xuất hiện của ký tự cụ thể được đề cập.replace that character with an empty string. The str. replace() method will replace all occurrences of the specific character mentioned.

Làm thế nào để bạn loại bỏ các ký tự không mong muốn khỏi văn bản trong Python?

Python Xóa ký tự khỏi chuỗi bằng cách sử dụng dịch python python dịch () Chức năng Thay thế từng ký tự trong chuỗi bằng bảng dịch đã cho.Chúng tôi phải chỉ định điểm mã Unicode cho ký tự và 'Không' làm thay thế để xóa nó khỏi chuỗi kết quả.using translate() Python string translate() function replace each character in the string using the given translation table. We have to specify the Unicode code point for the character and 'None' as a replacement to remove it from the result string.

Làm thế nào để bạn tránh các nhân vật đặc biệt trong Python?

Loại bỏ các ký tự đặc biệt bao gồm các chuỗi sử dụng python isalnum.Python có một phương thức chuỗi đặc biệt,.isalnum (), trả về true nếu chuỗi là một ký tự alpha-numeric và trả về sai nếu không.Chúng ta có thể sử dụng điều này, để lặp qua một chuỗi và nối vào một chuỗi mới, chỉ có các ký tự alpha-numeric.