Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬 maketrans() 및 translate() 함수

<시간/>

파이썬 문자열 maketrans()

maketrans() 메서드는 translate() 메서드에 사용할 수 있는 번역을 위한 매핑 테이블을 반환합니다. 이것은 번역/대체에 대한 문자의 일대일 매핑을 생성하는 정적 방법입니다. 이 방법은 번역을 위해 각 문자의 유니코드 표현을 생성합니다.

maketrans() 메서드의 구문은 -

입니다.
string.maketrans(x[, y[, z]])
y and z are optional arguments.

문자열 maketrans() 매개변수

maketrans() 메소드에는 3개의 매개변수가 있습니다.

x - 이 경우 인수가 하나만 제공되면 사전이어야 하고 사전에는 단일 문자열에서 번역으로의 일대일 매핑 또는 번역으로의 유니코드 번호('a'의 경우 97)가 포함되어야 합니다. .

y - 이 경우 두 개의 인수가 전달되면 길이가 동일한 두 개의 문자열이어야 하며 첫 번째 문자열의 각 문자는 두 번째 문자열의 해당 인덱스에 대한 대체입니다.

z - 이 경우 세 개의 인수가 전달되면 세 번째 인수의 각 문자는 없음으로 매핑됩니다.

문자열 maketrans()의 반환 값

이 메서드는 변환/대체에 대한 유니코드 서수의 1:1 매핑이 있는 변환 테이블을 반환합니다.

예시 1

maketrans()가 있는 사전을 사용한 번역 테이블

예시 코드

dict= {"a": "123", "b": "456", "c": "789"}
my_string = "abc"
print(my_string.maketrans(dict))
# example dictionary
dict = {97: "123", 98: "456", 99: "789"}
my_string = "abc"
print(my_string.maketrans(dict))

출력

{97: '123', 98: '456', 99: '789'}
{97: '123', 98: '456', 99: '789'}

설명 - 이 예에서 dict는 사전이고 문자 a,b 및 c를 각각 123, 456 및 789로 매핑하는 내용을 포함합니다. maketrans()는 해당 번역에 대한 문자의 유니코드 서수 매핑을 만듭니다. 따라서 결과는 97('a')이 '123'에 매핑되고 98 'b'가 456에 매핑되고 99 'c'가 789에 매핑됩니다.

예시 2

maketrans()

와 함께 두 개의 문자열을 사용하는 번역 테이블

예시

my_string1 = "abc"
my_string2 = "def"
string = "abc"
print(string.maketrans(my_string1, my_string2))
# Example dictionary
my_string1 = "abc"
my_string2 = "defghi"
string = "abc"
print(string.maketrans(my_string1, my_string2))

출력

{97: 100, 98: 101, 99: 102}
ValueError: the first two maketrans arguments must have equal length

설명 − 이 예에서는 길이가 동일한 "abc" 및 "def"의 두 문자열이 정의됩니다. 그리고 해당 번역이 생성되고 첫 번째 번역만 인쇄하면 my_string1에 있는 각 문자의 유니코드 서수와 my_string2에 있는 동일한 인덱싱된 문자에 대한 일대일 매핑이 제공됩니다.

그러나 이 경우 97('a')은 100('d'), 98('b')은 101('e'), 99('c')는 102('f')로 매핑하고 길이가 다른 문자열에 대한 변환 테이블을 만들려면 문자열의 길이가 같아야 함을 나타내는 ValueError 예외가 발생합니다.

번역() . 우리는 번역 테이블이 문자를 다른 문자에 매핑한다는 것을 알고 있습니다. 문자열에서 많은 문자를 대체하기 위해 Python에서 translate() 메서드를 사용합니다. 먼저 maketrans()로 번역 사전을 만들고 이것을 번역에 전달합니다.

maketrans, 번역을 사용하는 Python 프로그램

#Python program that uses maketrans, translate
dict = str.maketrans("abc", "def")
print(dict)
# Translate this value.
value = "aabbcc"
result = value.translate(dict)
print(result)

출력

{97: 100, 98: 101, 99: 102}
ddeeff

문자를 무시하고 제거하는 Python 프로그램

# Create translation table.
table = str.maketrans("78", "12", "9")
# Translate this string.
input = "123456789"
result = input.translate(table)
# Write results.
print(input)
print(result)

출력

123456789
12345612

rot13 번역을 적용한 파이썬 프로그램

#Create translation table.
trans = str.maketrans("abcdefghijklmnopqrstuvwxyz","nopqrstuvwxyzabcdefghijklm")
# Apply rot13 translation.
print("gandalf".translate(trans))
print("gandalf".translate(trans).translate(trans))

출력

tnaqnys
gandalf