Cách xóa một chữ số khỏi một số trong Python

Hướng dẫn này sẽ xem xét các phương pháp khác nhau để xóa các số hoặc chữ số khỏi chuỗi trong Python. Chúng tôi thường xóa số khỏi dữ liệu trong Xử lý ngôn ngữ tự nhiên trong quá trình Làm sạch dữ liệu

Giả sử chúng tôi có một chuỗi abcd1234efg567 và chúng tôi muốn xóa các chữ số khỏi chuỗi để nhận được một chuỗi như abcdefg. Chúng ta có thể xóa các số khỏi chuỗi trong Python bằng các phương pháp sau

Xóa số khỏi chuỗi bằng phương thức string.join() trong Python

Phương thức string.join(iterable) lấy một đối tượng có thể lặp lại iterable làm đầu vào, nối các phần tử của nó lại với nhau bằng cách sử dụng giá trị của ______16_______ làm dấu phân cách và trả về chuỗi kết quả làm đầu ra

Để xóa các số khỏi chuỗi, trước tiên chúng ta sẽ lặp qua chuỗi và chọn các giá trị không phải chữ số, chuyển chúng đến phương thức string.join() để nối chúng và lấy chuỗi kết quả có ký tự không phải chữ số làm đầu ra

Đoạn mã ví dụ dưới đây trình bày cách sử dụng phương thức

from string import digits

string = 'abcd1234efg567'
table = str.maketrans('', '', digits)
newstring = string.translate(table)
print(newstring)
0 để xóa các số khỏi chuỗi

Khi được yêu cầu xóa chữ số cụ thể khỏi mọi thành phần của danh sách, phép lặp và toán tử 'set' và phương thức 'str' được sử dụng

Thí dụ

Dưới đây là một minh chứng tương tự

my_list = [123, 565, 1948, 334, 4598]

print("The list is :")
print(my_list)

key = 3
print("The key is :")
print(key)

my_result = []

for element in my_list:
   if list(set(str(element)))[0] == str(key) and len(set(str(element))) == 1:
      my_result.append('')
   else:
      my_result.append(int(''.join([element_1 for element_1 in str(element) if int(element_1) != key])))

print("The result is :")
print(my_result)

đầu ra

The list is :
[123, 565, 1948, 334, 4598]
The key is :
3
The result is :
[4598]

Giải trình

  • Một danh sách các số nguyên được xác định và được hiển thị trên bàn điều khiển
  • Một giá trị cho khóa được xác định và được hiển thị trên bảng điều khiển
  • Một danh sách trống được tạo
  • Danh sách được lặp đi lặp lại và phần tử tại chỉ mục thứ 0 được kiểm tra để khớp với khóa sau khi chuyển đổi nó thành chuỗi và thành tập hợp rồi thành danh sách
  • Toán tử 'và' cũng được sử dụng để kiểm tra xem độ dài của phần tử cụ thể có bằng 1 không
  • Nếu có, một khoảng trống sẽ được thêm vào danh sách trống
  • Mặt khác, nó được chuyển đổi thành một chuỗi bằng cách lặp lại nó bằng cách sử dụng khả năng hiểu danh sách
  • Điều này chỉ được thực hiện nếu phần tử không bằng khóa
  • Điều này một lần nữa được chuyển đổi thành một số nguyên và được thêm vào danh sách trống
  • Điều này được hiển thị dưới dạng đầu ra trên bảng điều khiển

Cách xóa một chữ số khỏi một số trong Python


Cách xóa một chữ số khỏi một số trong Python

Trong bài viết này, chúng ta sẽ tìm hiểu cách xóa các giá trị số khỏi một chuỗi đã cho trong Python. Chúng tôi cũng sẽ sử dụng một số hàm tích hợp và một số mã tùy chỉnh. Trước tiên chúng ta hãy xem nhanh chuỗi trong Python là gì

Chuỗi Python

Chuỗi là một loại trong ngôn ngữ python giống như số nguyên, float, boolean, v.v. Dữ liệu được bao quanh bởi dấu nháy đơn hoặc nháy kép được gọi là một chuỗi. Chuỗi còn được gọi là dãy ký tự

string1 = "apple"
string2 = "Preeti125"
string3 = "12345"
string4 = "pre@12"

Một chuỗi trong Python có thể chứa số, ký tự, ký tự đặc biệt, dấu cách, dấu phẩy, v.v. Chúng ta sẽ tìm hiểu bốn cách khác nhau để loại bỏ các số khỏi một chuỗi và sẽ in một chuỗi mới đã sửa đổi

Thí dụ. Xóa số khỏi chuỗi bằng regex

Python cung cấp một mô-đun regex có chức năng tích hợp sẵn sub() để xóa các số khỏi chuỗi. Phương thức này thay thế tất cả các lần xuất hiện của mẫu đã cho trong chuỗi bằng một chuỗi thay thế. Nếu không tìm thấy mẫu trong chuỗi, thì nó sẽ trả về cùng một chuỗi

Trong ví dụ bên dưới, chúng tôi lấy một mẫu là r'[0-9]’ và một chuỗi rỗng làm chuỗi thay thế. Mẫu này khớp với tất cả các số trong chuỗi đã cho và hàm sub() thay thế tất cả các chữ số đã khớp bằng một chuỗi trống. Sau đó, nó sẽ xóa tất cả các số đã khớp

#regex module
import re

#original string
string1 = "Hello!James12,India2020"

pattern = r'[0-9]'

# Match all digits in the string and replace them with an empty string
new_string = re.sub(pattern, '', string1)

print(new_string)


Xin chào. James, Ấn Độ

Thí dụ. Xóa số khỏi chuỗi bằng cách sử dụng phép nối () & isdigit ()

Phương pháp này sử dụng isdigit() để kiểm tra xem phần tử có phải là chữ số hay không. Nó trả về True nếu phần tử là một chữ số. Phương thức này sử dụng vòng lặp for để lặp qua từng ký tự trong chuỗi

Ví dụ dưới đây bỏ qua tất cả các số trong chuỗi trong khi lặp lại và nối tất cả các ký tự còn lại để in một chuỗi mới

string1 = "Hello!James12,India2020"

#iterating over each element
new_string = ''.join((x for x in string1 if not x.isdigit()))

print(new_string)


Xin chào. James, Ấn Độ

Thí dụ. Xóa số khỏi chuỗi bằng translate()

Phương pháp này sử dụng thư viện stringPython. Với sự trợ giúp của một đối tượng chuỗi, maketrans() tách các số khỏi chuỗi đã cho. Sau đó, một bảng dịch được tạo trong đó mỗi ký tự chữ số i. e. '0' đến '9' sẽ được ánh xạ tới Không và bảng dịch này được chuyển đến hàm translate()

Ví dụ dưới đây tạo một bảng dịch và thay thế các ký tự trong chuỗi dựa trên bảng này, vì vậy nó sẽ xóa tất cả các số khỏi chuỗi

import string

string1 = "Hello!James12,India2020"

#digits are mapped to None
translation_table = str.maketrans('', '', string.digits)

#deletes all number
new_string = string1.translate(translation_table)

print(new_string)


Xin chào. James, Ấn Độ

Thí dụ. Xóa số khỏi chuỗi

Ví dụ này sử dụng bộ lọc() và lambda trong biểu thức tạo. Nó lọc hoặc xóa tất cả các số khỏi chuỗi đã cho và nối các ký tự còn lại của chuỗi để tạo một chuỗi mới

Hàm filter() sử dụng chuỗi gốc và biểu thức lambda làm đối số của nó. Đầu tiên, chúng tôi đã lọc tất cả các ký tự chữ số từ một chuỗi và sau đó nối tất cả các ký tự còn lại

#original string
string1 = "Hello!James12,India2020"

#Filters all digits 
new_string = ''.join(filter(lambda x: not x.isdigit(), string1))

print(new_string)


Xin chào. James, Ấn Độ

Phần kết luận

Trong bài viết này, chúng ta đã học cách loại bỏ các giá trị số khỏi chuỗi ký tự đã cho. Chúng tôi đã sử dụng các hàm tích hợp khác nhau như_______4_______0, isdigit(),

#regex module
import re

#original string
string1 = "Hello!James12,India2020"

pattern = r'[0-9]'

# Match all digits in the string and replace them with an empty string
new_string = re.sub(pattern, '', string1)

print(new_string)
2,
#regex module
import re

#original string
string1 = "Hello!James12,India2020"

pattern = r'[0-9]'

# Match all digits in the string and replace them with an empty string
new_string = re.sub(pattern, '', string1)

print(new_string)
3, sub() của mô-đun regex. Chúng tôi cũng đã sử dụng mã tùy chỉnh để hiểu chủ đề