Chuỗi maketrans Python 3

Hàm maketrans() chuỗi Python trả về bảng ánh xạ để dịch có thể sử dụng cho phương thức translate(). Ngoài ra, nó chỉ định danh sách các ký tự cần được thay thế khỏi chuỗi chính hoặc bị xóa

Chuỗi Python maketrans()

Chuỗi maketrans() trong Python là một hàm ánh xạ tích hợp giúp ánh xạ các ký tự của chuỗi thành chuỗi thay thế hay nói cách khác là bản dịch của chuỗi đó. maketrans() là một phương thức trợ giúp cho phương thức translate(). Nó hỗ trợ phương thức translate() bằng cách trả về một bảng dịch được sử dụng cho ánh xạ một-một của các ký tự chuỗi

Nói một cách đơn giản, phương thức maketrans() của Python là phương thức tĩnh tạo ánh xạ một-một của ký tự tới bản dịch/thay thế của nó

Nó tạo ra biểu diễn Unicode của từng ký tự để dịch

Ánh xạ dịch đó sau đó được sử dụng để thay thế ký tự bằng ký tự được ánh xạ của nó khi được sử dụng trong phương thức translate()

cú pháp

Xem cú pháp sau

maketrans( str_var1, str_var2, str_var3)

Các đối số được cung cấp là tùy chọn, nhưng phải có ít nhất một đối số

Thông số

Có ba thông số

Đầu tiên là str_var1;

Thứ hai là str_var 2. Nó chứa các ký tự mà các ký tự của str_var1 cần được thay thế

Thứ ba là tùy chọn, chỉ định các ký tự cần xóa khỏi danh sách chính

Giá trị trả về

Nó trả về một bảng chuyển tiếp được sử dụng bởi hàm translate()

Chương trình ví dụ sử dụng phương thức maketrans() trong python

ví dụ 1. Viết chương trình hiển thị hoạt động của phương thức maketrans()

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))

đầu ra

➜  pyt python3 app.py
{72: 71, 101: 105, 108: 108, 111: 115}
➜  pyt

ví dụ 2. Viết chương trình in bảng chuyển đổi, bao gồm tham số thứ ba, loại bỏ các ký tự khỏi chuỗi

# app.py

h1 = "qwerty"
h2 = "bowled"
h3 = "qweled"
h4 = "qwerty"
print(h4.maketrans(h1, h2, h3))

đầu ra

➜  pyt python3 app.py
{113: None, 119: None, 101: None, 114: 108, 116: 101, 121: 100, 108: None, 100: None}
➜  pyt

Bảng dịch sử dụng từ điển với maketrans()

Hãy sử dụng hàm maketrans() với từ điển Python

Xem đoạn mã sau

# app.py

dict = {"a": "219", "b": "211", "c": "229"}
string = "kgb"
print(string.maketrans(dict))

dict = {97: "219", 98: "211", 99: "229"}
string = "kgb"
print(string.maketrans(dict))

đầu ra

➜  pyt python3 app.py
{97: '219', 98: '211', 99: '229'}
{97: '219', 98: '211', 99: '229'}
➜  pyt

Ở đây, từ điển dict được định nghĩa. Nó chứa ánh xạ của các ký tự a, b và c đến 219, 211 và 229, tương ứng

maketrans() tạo ánh xạ thứ tự Unicode của ký tự sang bản dịch tương ứng của nó

Vì vậy, 97 ('a') được ánh xạ tới '219', 98 'b' tới 211 và 99 'c' tới 229. Điều này có thể được chứng minh từ đầu ra của cả hai từ điển

Phần kết luận

Phương thức chuỗi Python maketrans() trả về bảng dịch ánh xạ từng ký tự trong chuỗi intab thành một ký tự ở cùng vị trí trong chuỗi outtab. Sau đó, bảng này được chuyển đến hàm translate(). Một điều cần lưu ý là bcả intab và outtab phải có cùng độ dài.

Đó là nó cho bài viết này

Facebook

Twitter

Pinterest

WhatsApp

Bài viết trước Cách xóa khóa khỏi từ điển trong Python

Bài viết tiếp theo Hàm setattr() của Python. Hướng dẫn đầy đủ

Chuỗi maketrans Python 3

Ankit Lathiya

Ankit Lathiya là Bậc thầy về Ứng dụng Máy tính theo chuyên môn và là Nhà phát triển Android và Laravel chuyên nghiệp, đồng thời là một trong những tác giả của blog này

Trong thế giới lập trình, hiếm khi có nhu cầu thay thế tất cả các từ/ký tự cùng một lúc trong toàn bộ tệp. Python cung cấp chức năng này bằng cách sử dụng các hàm translate() và các hàm trợ giúp maketrans() của nó. Cả hai chức năng được thảo luận trong bài viết này

maketrans()

hàm maketrans() được sử dụng để xây dựng bảng chuyển tiếp i. e chỉ rõ danh sách các ký tự cần thay thế trong cả chuỗi hoặc các ký tự cần xóa khỏi chuỗi

cú pháp. maketrans(str1, str2, str3)

Thông số.
str1. Chỉ định danh sách các ký tự cần được thay thế.
str2. Chỉ định danh sách các ký tự mà các ký tự cần được thay thế.
str3. Chỉ định danh sách các ký tự cần xóa.

trả lại. Trả về bảng dịch chỉ định các chuyển đổi có thể được sử dụng bởi translate()

Dịch sử dụng maketrans()

Để dịch các ký tự trong chuỗi translate() được sử dụng để thực hiện các bản dịch. Hàm này sử dụng ánh xạ dịch được chỉ định bằng maketrans()

cú pháp. dịch (bảng, delstr)

Thông số.
bảng. Bản đồ dịch được chỉ định để thực hiện các bản dịch.
delstr. Chuỗi xóa có thể được chỉ định làm đối số tùy chọn không được đề cập trong bảng.

trả lại. Trả về chuỗi đối số sau khi thực hiện các bản dịch bằng bảng dịch

 
Mã số 1. Mã để dịch sử dụng translate() và maketrans().




# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
4

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
5

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
6

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
7

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
8

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
9
➜  pyt python3 app.py
{72: 71, 101: 105, 108: 108, 111: 115}
➜  pyt
0
➜  pyt python3 app.py
{72: 71, 101: 105, 108: 108, 111: 115}
➜  pyt
1

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
7

The string before translating is : weeksyourweeks
The string after translating is : geeksforgeeks
1

The string before translating is : weeksyourweeks
The string after translating is : geeksforgeeks
2
➜  pyt python3 app.py
{72: 71, 101: 105, 108: 108, 111: 115}
➜  pyt
0
The string before translating is : weeksyourweeks
The string after translating is : geeksforgeeks
4

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
7

The string before translating is : weeksyourweeks
The string after translating is : geeksforgeeks
6

The string before translating is : weeksyourweeks
The string after translating is : geeksforgeeks
7
➜  pyt python3 app.py
{72: 71, 101: 105, 108: 108, 111: 115}
➜  pyt
0
The string before translating is : weeksyourweeks
The string after translating is : geeksforgeeks
9

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
7

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
41

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
42
➜  pyt python3 app.py
{72: 71, 101: 105, 108: 108, 111: 115}
➜  pyt
0
# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
44

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
7

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
46

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
47

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
48

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
49
➜  pyt python3 app.py
{72: 71, 101: 105, 108: 108, 111: 115}
➜  pyt
0
# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
51

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
7

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
53

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
54
# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
55
# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
56______157
➜  pyt python3 app.py
{72: 71, 101: 105, 108: 108, 111: 115}
➜  pyt
0
# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
59

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
54
# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
61

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
7

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
63

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
54
# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
55
# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
66
# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
57
➜  pyt python3 app.py
{72: 71, 101: 105, 108: 108, 111: 115}
➜  pyt
0
# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
59

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
54
# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
71

đầu ra

The string before translating is : weeksyourweeks
The string after translating is : geeksforgeeks

 

Dịch mà không cần maketrans()

Bản dịch cũng có thể đạt được bằng cách chỉ định từ điển dịch và chuyển dưới dạng một đối tượng hoạt động như một ánh xạ. Trong trường hợp này, không cần maketrans() để thực hiện các bản dịch

 
Mã số 2. Mã để dịch mà không cần maketrans().




# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
4

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
73

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
74

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
7

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
76

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
77

# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
49
➜  pyt python3 app.py
{72: 71, 101: 105, 108: 108, 111: 115}
➜  pyt
0
# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
80
# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
81
# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
82
# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
83
# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
84
# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
85
# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
82
# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
87
# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
84
# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
89
# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
82
# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
91
# app.py

h1 = "Hello"
h2 = "Girls"
str_var = "Hello"
print(str_var.maketrans(h1, h2))
92

Làm cách nào để sử dụng Maketrans trong Python 3?

Phương thức maketrans() Chuỗi Python .
Tạo một bảng ánh xạ và sử dụng nó trong phương thức translate() để thay thế bất kỳ ký tự "S" nào bằng ký tự "P". .
Sử dụng bảng ánh xạ để thay thế nhiều ký tự. .
Tham số thứ ba trong bảng ánh xạ mô tả các ký tự mà bạn muốn xóa khỏi chuỗi

Hàm Maketrans trong Python là gì?

Phương thức maketrans() chuỗi trả về một bảng ánh xạ để dịch có thể sử dụng cho phương thức translate() . Nói một cách đơn giản, phương thức maketrans() là một phương thức tĩnh tạo ánh xạ 1-1 của một ký tự tới bản dịch/thay thế của nó. Nó tạo ra một biểu diễn Unicode của từng ký tự để dịch.